codeforces #267 C George and Job(DP)】的更多相关文章

职务地址:http://codeforces.com/contest/467/problem/C 太弱了..这题当时都没做出来..思路是有的,可是自己出的几组数组总是过不去..今天又又一次写了一遍.才发现当时一个地方脑残了..每次选的最大值应该是与更新后的位置的前一个比而不是当前所在的位置. 二维DP. 代码例如以下: #include <iostream> #include <cstdio> #include <string> #include <cstring…
Codeforces Round #267 (Div. 2) C. George and Job题目链接请点击~ The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough money, so George was going to work as a programmer. Now he faced the follow…
wa哭了,,t哭了,,还是看了题解... 8170436                 2014-10-11 06:41:51     njczy2010     C - George and Job             GNU C++     Accepted 109 ms 196172 KB 8170430                 2014-10-11 06:39:47     njczy2010     C - George and Job             GNU C…
题目 Source http://codeforces.com/contest/467/problem/C Description The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough money, so George was going to work as a programmer. Now he faced t…
题目 传送门:QWQ 分析 dp基础题. $ dp[i][j] $表示前i个数分成j组的最大和. 转移显然. 吐槽:做cf题全靠洛谷翻译苟活. 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ll dp[maxn][maxn], sum[maxn], a[maxn]; ll Sum(];} int main(){ int n,m,k; scanf("%d%d%d",&n…
Codeforces Round #267 (Div. 2) C. George and Job time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The new ITone 6 has been released recently and George got really keen to buy it. Unfortunate…
题意读了好久才读懂....不知道怎么翻译好~~请自便~~~ http://codeforces.com/problemset/problem/425/C 看懂之后纠结好久...不会做...仍然是看题解看代码才懂的... dp[i][j]表示A数组前i个数,第一个操作做j次的B数组的最小下标.代码里把第一维给压掉了. 复杂度,n*s/e*logn吧... #include <cstdio> #include <cstring> #include <iostream> #i…
题目大概说给一个长m的括号序列s,要在其前面和后面添加括号使其变为合法的长度n的括号序列,p+s+q,问有几种方式.(合法的括号序列当且仅当左括号总数等于右括号总数且任何一个前缀左括号数大于等于右括号数) 我这么想的:n-m<=2000,因而可以dp计算p和q的方案数,同时在各个地方加入s进行转移. dp[0/1][i][j]表示s没有/有加入时,p和q前i个括号已经确定且还有j的左括号还没匹配的方案数 注意到任何前缀的左括号都是大于等于右括号的,因此j这一维不会小于0. 那么转移,我用我为人人…
题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考虑:如果操作的次数最少,那么最终得到的不降的数列,必然是由原始数列中的数组成的,具体的证明可以使用反证法 知道了上面讲述的性质,这题就好搞了 先将原始数列(设为 A,共 n 个数)中所有的数去重并从小到达排序,保存在另一个数列中(设为 B,共 m 个数) 定义状态:f[i][j] 表示将原始数列中的…
题意:转换模型之后,就是1~n个数中选k个,放到一个容量为n的背包中,这个背包还特别神奇,相同的物品摆放的位置不同时,算不同的放法(想象背包空间就是一个长度为n的数组,然后容量为1的物体放一个格子,容量为n的物体放在相邻的n个格子里.问方案数. 方法: 选k个物品放在背包中有多少种放法. 然后就是k个物品放了以后,还剩下几个空位,空位的位置不同,则方案数也不同.所以要求出几个空位放在几个地方有多少方案数 最后相乘,再乘上阶乘就好了. #include <cstdio> #include <…