上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页
摘要: 擦,真不应该让这个题目弄这么久就是一个比较简单的状态DP,先预处理出每一行的可行情况,然后因为当前行是和前两行有关系的,果断不能只用个两维啊,我一开始Dp数组开个两维,只记录当前行的状态,结果在枚举前面行的时候果断就不行啊,因为你枚举了上一行那上一行的前两行又要枚举,果断不行啊,我居然还照着这个思路全部写完并且过了样例,还提交WA了很久都没反应过来至少开三维,dp[i][j][k]记录当前行为j状态,i-1行为k状态时的最大值,那么dp[i][j][k]=max(本身,dp[i-1][k][w]+cot[j]),其中状态和某个状态的含1的个数都预处理好了,j,k,w都是状态编号,w为i-2行的 阅读全文
posted @ 2014-04-01 13:52 KRisen 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 昨天是我负责这个题目的,最后没搞出来,真的给队伍拖后腿了。当时都推出来了 我假设最后结果是取了m个物品,则我把这个m个物品按取的先后编号为 k1 k2 k3 k4...km则最终结果就是 (k1.a+k2.a+...km.a)-((m-1)*k1.b+(m-2)*k2.b+....+1*k(m-1).b+0*km.b);由此可见最终的结果必定是从n个石头中选出m个石头,而且这m个石头要按b值的升序来取,因为按上述式子,这m个石头的a值顺序不影响结果,但b值越小的放前面就使得结果越优,这里也算用了一下贪心思想吧,不过是显而易见的。然后当时聪哥就照着这个敲了一个贪心的,WA了。。。之后就肯定了绝对 阅读全文
posted @ 2014-03-31 15:53 KRisen 阅读(247) 评论(0) 推荐(0) 编辑
摘要: http://acm.whu.edu.cn/land/problem/detail?problem_id=1542今天做武大的网赛题,哎,还是不够努力啊,只搞出三个这个题目一看就是个最短路,但是题目数据量太大,n^2承受不起,而且如果只是个最短路,那题目花这么大力气叙述有些城市可以互相免费干嘛呢这个是聪哥发现的神奇的细节,题目里说It is guaranteed that there are no more 200 coalitions.暂且把这个称作空域,也就是说最终免费的城市都成了一个块,而不同的块只有不超过200个,聪哥当时是这么分析的,如果真是这样的话,那可以先用并查集把这200个块求 阅读全文
posted @ 2014-03-30 22:36 KRisen 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 求火柴的组成的数字最多能组成多少种数字,典型的递推问题但是因为结果巨大,要用高精度运算一开始手写高精度,不仅挫的要死,最后还WA了。最后学了一下白书上面的bign类,相当方便啊。#include #include #include #include #include #define N 720using namespace std;struct bign{ int len,s[N]; bign() { memset(s,0,sizeof s); len=1; } bign(int num) {*this=num;} string ... 阅读全文
posted @ 2014-03-28 15:52 KRisen 阅读(399) 评论(3) 推荐(1) 编辑
摘要: Description Here is no naked girl nor naked runners, but a naked problem: you are to find the K-th smallest element in the set of all irreducible fractions , with 0#include using namespace std;int n,k;struct node{ int p,q; node operator+(const node &rhs) { node nt; nt.p=p+rhs... 阅读全文
posted @ 2014-03-27 17:45 KRisen 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 真是脑残。。。擦具体题解在这里http://www.cnblogs.com/windysai/p/3619222.html原本我为了防止两个数冲突,设置了好多判断,结果发现,如果两个数冲突,另外找两个 i,s+1-i输出就行了,因为两个数冲突 和必定为s+1,反正最后只是要求总和相同,找两个没有访问... 阅读全文
posted @ 2014-03-25 22:13 KRisen 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 今天下午Virtual了一套最近的CF题,第三题给TLE了,就跑过去上课了。这题给定一个由二进制表示的矩阵,当询问3的时候,求矩阵的值,矩阵的值是所有第i行乘以第i列的值的总和,然后还有1 b是翻转b行的数字 2 b是翻转b列的数字一开始没怎么考虑复杂度,就直接想暴力过,觉得只要把翻转先暂存,最后有询问3的时候再pushdown再计算一下结果。。。简直不经大脑思考,有10^6询问,我这样做,如果询问全部是3,那光是计算矩阵10^6次就能达到12次方的复杂度。。。真是一点都不考虑。。。后来在课上想了点方法,觉得把每一行和列的翻转都预处理一下,以及先把原始结果预处理出来,然后遇到翻转就跟之前的状态 阅读全文
posted @ 2014-03-24 20:37 KRisen 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 这个题目求某个字符串中含的最长的回文子串。就是一个很简单的LCS模型吗,而且我不明白为什么网上这么多人都说仿照某写法把字符串先逆序一下,然后求LCS,我只想问一下,有必要吗?直接按LCS的套路来就行了啊,只不过方式变了下,按上面的写法,又麻烦,又根本没利用的LCS的精髓思想即,先从间隔0位开始做起,然后是间隔1位。。2.。。n-1位,d[i][j]代表i到j的最长回文串个数于是就有 s[i]==s[j] d[i][j]=d[i+1][j-1]+2,否则就取 max(f[i+1][j],f[i][j-1]),不就行啦。还用得着上面那样搞?不过如果这个问题这么简单我也不会放到博客里来写了。主要是下 阅读全文
posted @ 2014-03-23 21:12 KRisen 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 依然非常失望,我为什么现在还是那么弱,今天就做出了一道题,垫底。一个大家都看出来的C题,我居然没找到规律,想了一会儿就放弃了。A题是这样的,有n种珍珠,给出这n种珍珠各自的数目,再给出一个M,表示每M个不同珍珠组成一个项链。求问最多可以组成多少个这样的项链。一开始想到的就是贪心,发现如果按升序排序,再从前往后去贪心,样例都过不了,如果从后往前贪,可以过样例,而且感觉好像没有什么不妥,于是就造就了今天的一直WA的情况。这个题目不能用贪心,从前往后贪的时候就发现有问题,即,某个珍珠可以此时用完,但如果等下一次跟后面一个数用完的话,得到的总数将会更大。。。其实同理,由后往前贪也会出现这种情况,只是恰 阅读全文
posted @ 2014-03-22 20:11 KRisen 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 这个题目刚看到还真不好下手,把一个是 k的倍数的长度的字符串分成len/k块,每块是k个字母,每个块可以重新组合,最后使得整个序列的相同字母尽量在一起,也就是说,最后会把序列从前往后扫,相连的相同字母算一个块,最后使得所有块最少。这个其实是个从前往后扫的问题,只要枚举最后一位是哪个,比如i-1块的最后一位是w,且w在第i块中确实有,则 f[i][j]=min(本身,f[i-1][w]+chunks[i]-1), chunks[i]表示该块有本身有多少个小块。#include #include #include #define INF 1<<30char ch[1010];int r 阅读全文
posted @ 2014-03-22 10:56 KRisen 阅读(193) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 25 下一页