摘要: 题意很简单,就是给你一个数x(x #include #include using namespace std;typedef long long LL;const int MAXN = 80008;const int mod = 1000000007;int X,M;bool Prime[MAXN],mul[MAXN];int prime[MAXN],add[MAXN];int Isprime(int x){ for (int i = 2;i * i = MAXN)break; add[prime[i] + prime[j]] ++; ... 阅读全文
posted @ 2013-09-23 23:32 cnwsycf 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 第一次接触单调栈是暑假的时候,那时做到了了 HDU上的一题 :Largest Rectangle in a Histogram后来在范总的帮助下敲掉了。今天决定重新坐下这类题,目的是完善下代码风格和熟悉下。题目都是蛮简单的,核心算法就是用单调栈处理出第i个点左右最长可以延伸到的位置(记做 : L[i] 和 R[i])。挂了三道POJ题目 :1 Terrible Sets : (题意有点坑而已,理解后会发现和HDU上那题是一样的)2 Feel Good : (首先O(n)预处理出任意区间和,然后注意下会超int需要用__int64来保存区间和和最后的答案)3 Sticks Problem... 阅读全文
posted @ 2013-09-18 23:15 cnwsycf 阅读(229) 评论(0) 推荐(0) 编辑
摘要: Click here多线程DP,第一次看到这个名词。其实也还好,其实就是多个进程同时进行。题意 :从(1,1)走到(N,N),每次只能向下或者向右走,然后在走回(1,1)每次只能向上或者向左走。然后每个点上都有一个值,问你途径所能获得的值最大是多少,并且每个点只能走一次。思路 : 从(1,1)走出两条路来,开一个四维状态保存两个点的坐标。即 : DP[x1][y1][x2][y2];然后就开始DP了。#include #include #include using namespace std; const int MAXN = 33; const int INF = 9999999;... 阅读全文
posted @ 2013-09-14 20:56 cnwsycf 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 自己每周挂一些题目玩玩,希望自己能够快点成长起来。这是一组关于动态规划的题目。Click here第1题:HDOJ-2182 Frog题意 : 告诉你一个的序列,每一个的值得意思是在这个位置的虫子的数量。然后再告诉你两个数A、B,表示的是Frog每一次能够跳X = [A,B]的距离,然后还有一个跳的次数的限制。让你求最大可以吃掉的数量。思路 : 典型的DP问题,首先明确一点跳K次获得最优解必定大于或等于K-1次的最优解,然后要注意有些点可能是跳不到的。dp[i][j] : 跳j次到达i的最优解。状态转移方程 : dp[i][j] = dp[k][j-1] + aa[i] (A #include 阅读全文
posted @ 2013-09-11 21:45 cnwsycf 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这篇文章我在暑假的时候就已经看过了,但是当时只是粗略得看下而已,今夜从始读到末,收获颇多。最后一天,漫天飘起了雪花,假装欢送我离去。这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才逃脱Wrong Answer的纠缠。还好lynncui在期间独挡一面过掉D。最终成绩不好,然而没有遗憾,从不遗憾。相比之下,来自全球的队伍让我看到了很强大的实力,每一道题都有人过,包括SJTU欺骗性提交的H都被人干掉了。身为地球人我感到自豪。WF之旅很奢华(Sample: 1300一晚的酒店,99一顿的早餐),活动很多,服务很好。但最终念念不舍的是各位一见如故的朋友们, 阅读全文
posted @ 2013-09-06 23:34 cnwsycf 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 昨天在队长的blog上看到了一组DP题的题解,好像是给我们新队员做的,不过我发现我没做过(囧),手痒就敲了。here1 . poj - 2817WordStack题意 : 给你一些字符串,让你给它们排个序,然后 在可以前置0的情况下,求能获得的最大配对数量。思路 : 先预处理出任意两个字符串之间的最大配对数量,然后状态压缩求最大排列(似乎有人全排列也过了,orz)用一个dp[i][k]数组记录当状态为i并且最后一个加进去的是k的最优值#include #include #include using namespace std; typedef __int64 LL; #define ... 阅读全文
posted @ 2013-09-02 10:36 cnwsycf 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 关于最大连续子序列问题,我以前学DP的时候做过(Max Sum HDU1003)这道题,不过那时候只是草草的学了下,代码还是参考别人的,不懂原理,昨天在CF上做到类似的题目,然后跪了几把,决定把这类题目重新做了下(其实也就只是做了3道题目)首先 : 关于求一段整数序列的最大连续子序列的话,有好几种方法,最容易想到的就是O(N^2)暴力枚举每一个start 和end点,不过,一般会超时,另外还有分治的方法,复杂度在O(n*logn),不过我没敲过(囧)、好吧,我昨天终于弄懂了那种O(n)的算法:因为最大的那一段肯定是以1~n中 的某一个点结束的,所以枚举他(枚举每一个end点),然后当枚举第k个 阅读全文
posted @ 2013-08-28 10:32 cnwsycf 阅读(207) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4686多校的第9场比赛,这题是这场比赛中的第一题,似乎是一道签到题,不过,我第一眼看到,深深地表示不会,唯一想到的就是想去寻找它的循环,然后就YY去做它了。好在lele犀利的发现了它是一道矩阵题(表示矩阵做得很少,线代接近白学,orz),然后lele果断敲掉了它。好吧,赛后在acmood学长的教导下,我自己敲了一个。思路 : 够造出一个二维矩阵A来,使得A × [ai * bi ai bi 1 S(i)] = [a(i+1) * b(i+1) a(i+1) b(i+1) 1 S(i+1)]来,然后就 阅读全文
posted @ 2013-08-21 09:01 cnwsycf 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 2013 - 8 - 13拖队友的后腿。拖队友的后腿。只因为自己不够勤奋。仗着自己还年轻。任意挥霍时光。不想在这样了。不然。我未来老婆的奥妙。我未来儿子的奥数。该怎么办呢?2013 - 9 - 6大二的第一个学期开始了,作为一个在大一快结束的时候才开始ACM的孩纸来说,感觉时间上有点伤,然后么,对于自己所在的专业不想去上,非常希望自己能够每天到实验室去做题,提高自己,再然后么,上了两天课总觉得怪怪的,昨晚思考了下,我觉得: 现在这段时间ACM肯定是首要的,每天要保持刷题的感觉,希望自己能够在这个学期结束的时候在POJ上有一个500题+号(我现在还没开始在POJ上刷,囧,习惯于HDU),然后对于 阅读全文
posted @ 2013-08-13 18:28 cnwsycf 阅读(112) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1679题意 : 判断一张图中是否存在独一无二的最小生成树我是用次小生成树做的,因为刚看了相关的文章,所以就想来试试。恩,具体思路就是 :先求出最小生成树的边权值和min_n 然后再去枚举每一条构成 MST 的边,继续MST操作,只是在求MST的时候不用所枚举到的边,然后求出一个MST(需要保证构成一棵完整的树)来,和 min_n作比较,如果相等的话,说明它是Not Unique !否则继续枚举下一条边,如果都没的话就输出min_n。//CNWSYCF #include #include #include #include #inc... 阅读全文
posted @ 2013-08-08 20:58 cnwsycf 阅读(146) 评论(0) 推荐(0) 编辑