ACM
文章平均质量分 83
SF-_-
这个作者很懒,什么都没留下…
展开
-
POJ 3422 Kaka's Matrix Travels 解题报告(最大费用最大流)
题目大意:矩阵中每次只能向下走或者向右走。走K次问能得到的最大的和是多少。 解题报告:一开始以为是普通的贪心,每次取上边或者是左边中较大的数,取K次。当然,WA了。Discuss里也有讨论,例如下面这种情况: 1 1 0 4 3 2 5 0 1 贪心的话,第一次取 1,4,3,2,1,第二次取5。当然,最优解是取1,1,3,2,1,和4原创 2013-08-12 18:46:44 · 866 阅读 · 0 评论 -
POJ 2976 Dropping tests 解题报告(二分)
题目大意:n们成绩,去掉k门,平均分最大是多少? 解题报告:很难想到用二分来做……Discuss中有官方的解题报告,在下就贴个代码了#include #include #include using namespace std;#define LL long longint a[1001];int b[1001];double t[1001];int main(){原创 2013-08-12 20:46:00 · 851 阅读 · 0 评论 -
POJ 3318 Matrix Multiplication 解题报告 (随机化 & 矩阵性质)
题目大意:给定矩阵A,B,C,问A*B是否等于C。 解题报告:n最大有500,普通矩阵乘法复杂度是n^3,显然会超。 这题的解决办法也多了。首先就用n^3算法。稍作优化,即判断A矩阵中A[i][j]是否等于0。等于则不用做乘法了。1700MS左右可以过。虽然时间很久,不过绝对是正确的算法。 然后可以用一个行向量左乘A*B和C。这样复杂度会降到n^2。其正确性也相对较高原创 2013-08-13 14:50:23 · 982 阅读 · 0 评论 -
HDU 4576 Robot 解题报告(循环矩阵)
题目大意:m条指令,每次走w步。可是可以顺时针走,也可以逆时针走,问最终机器人在l,r范围内的概率。 解题报告:n挺大,不过矩阵仍然是循环矩阵,可以在n^2复杂度内求出。 对于走w步时矩阵的构建要注意,w可能大于n。而且顺时针和逆时针可能走到相同的位置。所以是在可能的位置+0.5。 代码如下:#include#include #include using n原创 2013-08-13 10:45:25 · 1211 阅读 · 0 评论 -
POJ 2454 Jersey Politics 解题报告(随机化)
题目大意:给定3*k个数字,分为3组,至少让两组中数字的和大于500*k。 解题报告:随机化算法。首先可以排序,让和最小的数字分为一组,即使另外两组的和必须大于500k。 然后就随机交换两组的数字。当满足要求时打印顺序即可。#include #include #include #include #include using namespace std;stru原创 2013-08-13 18:08:39 · 1122 阅读 · 0 评论 -
HDU 4577 X-Boxes 解题报告(数学)
题目:X-BoxesTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 305 Accepted Submission(s): 106Problem DescriptionCrazygirl is a原创 2013-08-14 10:54:10 · 1123 阅读 · 0 评论 -
HDU 4578 Transformation 解题报告(线段树,2013杭州邀请赛)
题目大意:对一组数据有4种操作:对区间[l,r]的加法,乘法,覆盖,以及查询1次方,2次方,3次方和。 解题报告:当时杭州区域赛选拔赛中的一道线段树裸体。记得是当时我们都卡在别的题目上,都挺低落的。最后做这题时时间也不够了,导致最后打铁了。当然,还是实力问题。 线段树裸题,要注意的是两点:一是加法更新时先更新3次方和,再更新2次方和,最后更新1次方和。自己列个公式很容易推出来。原创 2013-08-13 20:31:39 · 1669 阅读 · 10 评论 -
HDU 4582 DFS spanning tree 解题报告(贪心 & 树形DP)
首先声明,这题我是不会的,参考了frog1902的解题报告。http://blog.csdn.net/frog1902/article/details/9921845 当然,她的解题报告一开始我也不是太懂= =。本人渣渣一枚,网上搜索许久,无奈题目太新,写解题报告的人不多。 这里是另外一份解题报告的地址:http://www.cnblogs.com/wangfang20/arc原创 2013-08-15 17:41:35 · 2132 阅读 · 0 评论 -
HDU 4583 Coffee shop in Jioufen 解题报告(DFS+剪枝)
题目大意:给定n个数的序列,问互质的序列有多少个。 解题报告:在我写这篇解题报告之前,我搜了N久都搜不到解题报告。如果你也是这样感觉自己不会做,超时,或者WA了,跟自己说声,Try again!因为总会有没有解题报告的一天!!!还是希望你自己能再想一次,再试一次,再测个样例。自己想出来A掉题目才会有真正的快乐。 这题没有想象中那么难。很普通的DFS+剪枝就可以搞定了。但是2原创 2013-08-17 15:35:15 · 2094 阅读 · 6 评论 -
HDU 4371 Minimum palindrome 解题报告(找规律)
昨天没想出来,额,自己太水了。写个博客记录下。 题目大意:给定字母数量和字符串长度,求组成的字符串中最长的回文子串最短的字符串。= = 首先,长度可能是10W,所以可以排除是DP或者暴力什么的。 一个很容易找到的规律是,如果给定的字母数大于等于3的话,那么所求的字符串一定是类似于abcabcabc……这种格式。 首先回文子串的长度是1,而且字典序最小。因为找原创 2013-09-15 20:21:08 · 688 阅读 · 0 评论 -
HDU 3015 Disharmony Trees (线段树)
题目大意:给定一组x[], 一组h[], 求所有的sum(min(h1,h2)*abs(x1,x2))。 解题报告:首先,h1,h2间的较小值,我们可以将h[]从大到小排序,每次取得的h都比先前的小,计算中用到的必然是当前取得h。至于abs(x1,x2),对于当前的x,查找所有比x小的数值的和,以及个数,以及所有比x大的数值的和,和个数,计算即可。 本题的数据规模是10W,为方原创 2013-09-26 13:44:28 · 723 阅读 · 0 评论 -
简记2013 ACM/ICPC Asia Regional Changsha Online
今晚刚搞完的长沙网络赛,在ZOJ上办的。我们三个水货出了3题,罚时挺多。 比赛开始就在看J题,和JX简单讨论下,然后说我来敲。脑袋不是很清醒,想的也不周密,最后终于终于在两个半小时之后A了= =题目本身不难,但是容易犯错,想得不够周密呀。简单来说就是:如果n%3==2,那么我们能将第3个,第6个,……,第n-2个数字通过公式求出来。首先sum[1]-sum[0]得到第3个数字的值,然后递原创 2013-09-22 22:40:29 · 1331 阅读 · 0 评论 -
ZOJ 3213 Beautiful Meadow 解题报告(插头DP)
Beautiful MeadowTime Limit: 5 Seconds Memory Limit: 32768 KBTom's MeadowTom has a meadow in his garden. He divides it into N * M squares. Initially all the squares are covered with原创 2013-11-13 17:22:30 · 1459 阅读 · 0 评论 -
HDU 4303 Hourai Jeweled 解题报告(树状DP+统计)
Hourai JeweledTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 163840/163840 K (Java/Others)Total Submission(s): 868 Accepted Submission(s): 315Problem DescriptionKaguya Hour原创 2013-11-19 18:21:14 · 1087 阅读 · 0 评论 -
POJ 2411 Mondriaan's Dream 解题报告
Mondriaan's DreamTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 10132 Accepted: 5865DescriptionSquares and rectangles fascinated the famous Dutch pai原创 2013-11-07 08:50:36 · 1145 阅读 · 0 评论 -
ZOJ 3466 The Hive II 解题报告(插头DP)
The Hive IITime Limit: 5 Seconds Memory Limit: 65536 KBThere is a hive in the village. Like this. There are 8 columns(from A to H) in this hive. Different colums have the same number of g原创 2013-11-12 15:54:48 · 1058 阅读 · 0 评论 -
ZOJ 3256 Tour in the Castle 解题报告(插头DP)
Tour in the CastleTime Limit: 5 Seconds Memory Limit: 32768 KBAfter the final BOSS is defeated, the hero found that the whole castle is collapsing (very familiar scene, isn't it). Escape原创 2013-11-12 21:30:38 · 1125 阅读 · 0 评论 -
HDU 1964 Pipes 解题报告(插头DP)
插头DP。格子间有value,求哈密顿回路value和最小。和Ural 1519类似,给每个状态更新最小的value值即可。 代码如下:#include #include #include using namespace std;const int maxn=59999;struct Node{ int H[maxn]; int S[maxn];原创 2013-11-10 22:52:12 · 871 阅读 · 0 评论 -
插头DP——从不会到入门(POJ 2411,HDU 1565,HDU 2167,HDU 1693,Ural 1519)
#include #include #include #include using namespace std;#define LL long longconst int maxn=100037; // 可能的最大状态数struct Node{ int H[maxn]; // 哈希 int S[maxn]; // 状态 LL N[maxn]; // 状态对应的数量 in原创 2013-11-10 17:01:02 · 17573 阅读 · 7 评论 -
FZU 1977 Pandora adventure 解题报告(插头DP)
寻找经过所有必须经过的点的哈密顿回路数。与Ural 1519类似,在求解答案时加入一个判断:当前是否走过了所有的必须经过的点,是否形成回路。 插头DP入门可看上一篇博客:http://blog.csdn.net/sf____/article/details/15026397 代码如下:#include #include #include using namespa原创 2013-11-10 19:59:59 · 822 阅读 · 0 评论 -
POJ 3133 Manhattan Wiring 解题报告(插头DP)
Manhattan WiringTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 1358 Accepted: 795DescriptionThere is a rectangular area containing n × m cells. Two原创 2013-11-11 22:28:25 · 1249 阅读 · 0 评论 -
HDU 4285 circuits 解题报告(插头DP)
circuitsTime Limit: 30000/15000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 622 Accepted Submission(s): 185Problem Description Given a map of原创 2013-11-13 12:16:33 · 1035 阅读 · 0 评论 -
POJ 1739 Tony's Tour 解题报告(插头DP)
楼教主男人八题之一,插头DP。可以直接用Ural1519的代码,将地图那块改下即可。如下图: 就是在原有的地图下方加入两行,求此图的哈密顿回路即可。 代码如下:#include #include #include using namespace std;#define LL long long const int maxn=10007;int m,原创 2013-11-11 14:56:01 · 910 阅读 · 0 评论 -
HDU 3377 Plan 解题报告(插头DP)
解题报告:刚开始时卡了一下,以为用0,1表示插头即可,终点处判断有一个1插头就更新答案。后来想了一下,非起点到终点的部分可能成环,而结果也会被加进去。 如下图: 所以还是用以前Ural1519 的方法,使用括号序列。如果发现左插头为1,上插头为2,则放弃该状态。右下角如果有左插头亦或上插头,更新答案。 如果不会插头DP,可以看我的上一篇博客:插头DP入门。原创 2013-11-11 14:00:35 · 945 阅读 · 0 评论 -
ACM中免注释freopen提交代码
ACM本机测试时经常会使用freopen,直接读取txt文档中的输入数据。在提交代码时,再将freopen注释掉。有时候又会忘记注释掉freopen,非常不方便。 借助于宏定义和预处理,我门可以在本机测试时不用注释掉freopen,而直接提交代码。 笔者使用的IDE是VS2013,下面详细为大家介绍一下这种方法: 在ACM的项目上点右键,属性。原创 2014-02-27 16:37:45 · 1330 阅读 · 0 评论 -
CF 396A On Number of Decompositions into Multipliers 解题报告(质因数分解+组合数计算)
A. On Number of Decompositions into Multiplierstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are give原创 2014-02-27 21:23:43 · 1125 阅读 · 0 评论 -
UVa 1513 - Movie collection 解题报告(线段树)
Mr. K. I. has a very big movie collection. He has organized his collection in a big stack. Whenever he wants to watch one of the movies, he locates the movie in this stack and removes it carefully, en原创 2014-03-02 20:25:40 · 1463 阅读 · 0 评论 -
HDU 4135 Co-prime 解题报告(因式分解 + 容斥原理)
Co-primeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1111 Accepted Submission(s): 405Problem DescriptionGiven a number N,原创 2014-03-04 21:00:45 · 1078 阅读 · 3 评论 -
Ural 1114. Boxes 解题报告(组合数计算)
1114. BoxesTime limit: 0.6 secondMemory limit: 64 MBN boxes are lined up in a sequence (1 ≤ N ≤ 20). You have A red balls and B blue balls (0 ≤ A ≤ 15, 0 ≤ B≤ 15). The red balls (and the原创 2014-03-10 20:08:51 · 1362 阅读 · 1 评论 -
ZOJ 3556 How Many Sets I 解题报告(数论)
How Many Sets ITime Limit: 2 Seconds Memory Limit: 65536 KBGive a set S, |S| = n, then how many ordered set group (S1, S2, ..., Sk) satisfies S1 ∩ S2 ∩ ... ∩ Sk = ∅. (Si is a subset of原创 2014-03-10 16:41:26 · 1000 阅读 · 0 评论 -
Codeforces Round #235 (Div. 2) D. Roman and Numbers 解题报告(状态压缩)
D. Roman and Numberstime limit per test4 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputRoman is a young mathematician, very f原创 2014-03-11 15:39:53 · 1287 阅读 · 0 评论 -
HDU 1796 How many integers can you find 解题报告(数论)
How many integers can you findTime Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3505 Accepted Submission(s): 982Problem Descriptio原创 2014-02-27 16:47:26 · 884 阅读 · 0 评论 -
Ural 1091 Tmutarakan Exams 解题报告(容斥原理)
1091. Tmutarakan ExamsTime limit: 1.0 secondMemory limit: 64 MBUniversity of New Tmutarakan trains the first-class specialists in mental arithmetic. To enter the University you should ma原创 2014-03-08 16:02:08 · 952 阅读 · 0 评论 -
HDU 4059 The Boss on Mars 解题报告(4次方和+质因子分解+逆元+容斥原理)
The Boss on MarsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1649 Accepted Submission(s): 492Problem DescriptionOn Mars, t原创 2014-03-08 18:37:20 · 1124 阅读 · 0 评论 -
UVa 11806 Cheerleaders 解题报告(容斥原理)
刘汝佳书上的题目。他把漂亮的拉拉队直接说是石子了= =。 容斥原理,用4个二进制数表示上下左右四个方向上是否有拉拉队员。1表示没有,0表示有。然后一共16种情况,奇加偶减。贴个代码:#include#include#includeusing namespace std;const int mod = 1000007;int C[410][510];void calC(原创 2014-03-15 14:32:17 · 1046 阅读 · 0 评论 -
POJ 3159 Candies 解题报告(Dijkstra & SPFA) 及 双向Dijkstra性能测试
既昨天搞定了双向BFS对地图类的搜索优化,今天思考了一下双向Dijkstra。 Dijkstra的实质仍然是贪心。如果给定了起点和终点,能否同时进行Dijkstra,相遇时获得最短路呢? 简单思考,最短路加最短路,好像是对的。好吧,看下面这个图: 如果求A,B最短路,则先从A选择最短边6,到达C点,标记C点。(实际是松弛Relax,不过这么说比较好理解)。原创 2013-08-04 00:55:22 · 1218 阅读 · 0 评论 -
POJ 3414 Pots 解题报告(搜索)
题目大意:两个杯子,容量为A,B,每次可以装满,倒掉,或者A倒进B或者B倒进A,共计六种操作。问如何得到容量C并且打印此过程。 解题报告:每次六种操作,凭感觉也知道是广搜。 难点有两个,一是如何剪枝。即如何判断当前状态是否发生过。如果之前发生过此状态,则可以减掉当前状态。 二是如何打印路径。 先看第一个问题。我们可以使用哈希记录当前状态。每次产生原创 2013-08-04 13:17:45 · 1671 阅读 · 0 评论 -
POJ 1942 Paths on a Grid 解题报告(double妙用)
题目大意:每次可以向上走,向右走。问有多少种走法。 解题报告:简单来说就是求Cmn。不过注意数据范围,unsigned int,用int会超。 简单做法就是循环较小的数来求,原来写的代码如下:#include #include #include #include using namespace std;bool vis[200];;int main(){原创 2013-08-05 19:03:08 · 858 阅读 · 0 评论 -
POJ 3292 Semi-prime H-numbers 解题报告(筛选)
题目大意:h-number是形如4*n+1的数,如5,9,13。h-number是乘法闭包的。如果一个h-number最多由两个h-number相乘获得,那么它就是H-semi-prime。题目让我们求从1到n的所有H-semi-prime的数量。 解题报告:直接从1开始筛选就好了,像晒素数一样。注意点细节……代码如下:#include #include #define LL原创 2013-08-06 16:59:28 · 812 阅读 · 0 评论 -
POJ 1845 Sumdiv 解题报告(二分 & 逆元)
题目大意:求A^B 所有因数和。 解题报告:公式就不推了,这个链接有详细的推理过程:http://blog.csdn.net/lyy289065406/article/details/6648539 可以使用二分来求(p^0+p^1+p^2+……+p^n),道理也很简单前一半乘以p^(n/2)就等于后一般,注意奇偶就好了。二分比较好想到,也容易实现,但是用逆元可以更快的求解。原创 2013-08-06 21:47:30 · 1039 阅读 · 0 评论