CodeForces 1107F. Vasya and Endless Credits
題目簡述:給定 $n \leq 500$ 個貸款方式,其中第$i$個貸款額為$a_i$元,需要$k_i$個月償還,每月還貸$b_i$元。在每個月月初可申請其中一個貸款,而在每個月月底時需要還貸。求:(在某一時刻)可獲得的最多貸款。
觀察1:獲得最多貸款的時刻一定在$n$月以內。
觀察2:倒數第$j$個月申請的第$i$個貸款,在獲得最多貸款的時刻之前,需要還貸$b_i*\min\{k_i,j-1\}$元。
解1:(二分圖最佳匹配,最小費用最大流)code
設$X$部有$n$個點,記為$X_i$,表示第$i$個貸款方式;$Y$部有$n$個點,記為$Y_j$。$X_i$和$Y_j$之間的連線表示倒數第$j$個月申請第$i$個貸款。
連邊$(X_i, Y_j)$,權值為$\max\{a_i-b_i\min\{k_i,j-1\},0\}$。二分圖最佳匹配即為答案。使用KM算法求二分圖最佳匹配,時間復雜度為$O(n^3)$。
解2:
CodeForces 1107F. Vasya and Endless Credits
相關推薦
CodeForces 1107F. Vasya and Endless Credits
最大 之間 算法 sub 方式 最小費用最大流 code 連線 需要 題目簡述:給定 $n \leq 500$ 個貸款方式,其中第$i$個貸款額為$a_i$元,需要$k_i$個月償還,每月還貸$b_i$元。在每個月月初可申請其中一個貸款,而在每個月月底時需要還貸。求:(在某
CodeForces 1107 F Vasya and Endless Credits
還需 離開 大小 隨著 int pla += operator inpu 題目傳送門 題解: 需要註意到的是 每個offer都獲益都是會隨著時間的增加而漸少(或不變)。 所以我們可以知道,最多在第n個月的時候這個人會買車離開。 solve1:最優2分圖匹配 我們可以把每
Codeforces 832E Vasya and Shifts - 高斯消元
dot lan 線性 har pad sso pow tle ack 題目傳送門 快速的傳送門I 快速的傳送門II 題目大意 (題意比較復雜,請自行閱讀原題) 可以將原題的字母都看成它們的在字符表中的下標,這樣問題就變成給定$n$個$m
codeforces 1058B - Vasya and Cornfield
row class mat 條件 blank clas 多邊形 -s false <題目鏈接> 題目大意: 給出一個矩形,該矩形的四個頂點分別為:(0,d),(d,0),(n,n?d) and (n?d,n)。然後給出一些點的坐標,分別判斷這些點是否在該矩形內。
[Codeforces 1058E] Vasya and Good Sequences
getchar() https read pla dig style 個數 else int [題目鏈接] https://codeforces.com/contest/1058/problem/E [算法] 顯然 , 我們只需考慮序列中
CodeForces - 1073C Vasya and Robot
Vasya has got a robot which is situated on an infinite Cartesian plane, initially in the cell (0,0) . Robot can perform the following four kinds of
codeforces D. Vasya And The Matrix(思維+矩陣+異或)
題意:給定一個n*m的矩陣(未知),以及每一行的各個元素的異或和,每一列的各個元素的異或和,求出一個符合的矩陣(任意即可) 題意:思維很重要,考慮特例的話,只需要考慮最後一行和最後一列,除了最後一行和最後一列,矩陣的其他元素為0,最後,矩陣第n行和第m列之間存在一個方程關係,來求出最後一個元
codeforces C. Vasya And The Mushrooms (思維+字首+目標值最大+走格子)
題意:給定一個2*n的矩形方格,每個格子有一個權值,從(0,0)開始出發,要求遍歷完整個網格(不能重複走一個格子),求最大權值和,(權值和是按照step*w累加,step步數從0開始)。 題解:一開始我的想法是用dfs來求取最大的目標值,提交後tle,自己加了幾個剪枝也是tle,由於n最大是
codeforces 1030D Vasya and Triangle【思維+gcd】
題目:戳這裡 題意:選出三個點構成三角形,要求面積為n*m/k。 解題思路:因為三個點的座標都是正整數,根據三角形面積公式(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2=n*m/k可知,若三角形存在,則2*n*m/k必為整數。若面積*2為整數,則把該三角形放置在x軸上即可。於是設
Codeforces 1076E Vasya and a Tree(樹狀陣列)
題意:給你一顆以1為根節點的樹,初始所有節點的權值為0,然後有m個操作,每個操作將點x的所有距離不超過d的節點權值+1,問經過m次操作後每個節點權值是多少? 思路:如果是一個序列,就可以直接用樹狀陣列做,但這是一顆樹,所以我們可以想辦法把它轉化成序列。我們可以先求出每個節點的dfs序,以及深度和子樹的大小,
codeforces 1076E Vasya and a Tree 【dfs+樹狀陣列】
題目:戳這裡 題意:給定有n個點的一棵樹,頂點1為根。m次操作,每次都把以v為根,深度dep以內的子樹中所有的頂點(包括v本身)加x。求出最後每個點的值為多少。 解題思路:考慮到每次都只對點及其子樹操作,要用dfs。設v當前要操作的點,操作的深度是dep,d[v]表示v的深度。要把深度[d[v],d[v]
Codeforces C. Vasya and Robot+二分
題目連結:http://codeforces.com/contest/1073/problem/C 題目大意:機器人有4種操作 U — (x,y)->(x,y+1) D — (x,y)->(x,y−1) L — (x,y)->(x−1,y) R — (x,y)->(x
codeforces 1076E Vasya and a Tree 樹上主席樹
E. Vasya and a Tree 題意:給你一棵1為根節點的樹,初始每個節點權值為0,有m次操作,每次操作 v d x,表示將以v為根的子樹,深度不超過d的所有節點加上x。 思路:從深度為1的根節點開始遍歷,到了深度為dep的v節點,若是該節點有操作 d x,那麼以該節點為根的主席
codeforces 1073B. Vasya and Books
B. Vasya and Books time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Vasya has got nn books
Codeforces C. Vasya and Golden Ticket(思維題)
在這個題中給了n的範圍最大為100個 並且最大的值也就9*100 那麼我們完全可以暴力去求解。 暴力每一個可能取的數值 #include<set> #include<map> #include<queue> #includ
[codeforces 1016C]Vasya And The Mushrooms
time limit per test :2 seconds memory limit per test :256 megabytes asya’s house is situated in a forest, and there is a mushroom g
Codeforces 1065B Vasya and Isolated Vertices
簡單的圖論+思考題,給定n個頂點m條邊(無向圖),而且沒有重邊(重邊:兩個頂點之間有多條邊)和連線同一個頂點的"奇葩邊",現在要求你求兩個數。 第一個數,最小孤立頂點數。 第二個數,最大孤立頂點數。 其中孤立頂點又是這樣定義的,它不與圖中任意其他頂點相連,就像一個孤島一
Codeforces 1073B Vasya and Books
關鍵是記錄陣列元素的位置,然後暴力就行了。 #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <algorith
codeforces 1073C. Vasya and Robot
Vasya has got a robot which is situated on an infinite Cartesian plane, initially in the cell (0,0) . Robot can perform the followi
字首和的處理入門————codeforces 1016c——Vasya And The Mushrooms
題意: Vasya's house is situated in a forest, and there is a mushroom glade near it. The glade consists of two rows, each of which can be di