今天我们讨论的问题是如何有效地求自然数的幂和。接下来以3个经典题目为例来讲解。
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1864
分析:其实求自然数的幂和方法有很多种,我们先来看看普通的递推求法,有如下过程
由于...
分类:
其他好文 时间:
2014-09-01 10:47:53
阅读次数:
234
zoj3229:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3442题意:一个摄影师,在n天内给m个女神拍照。每个女神至少要拍Gi张照片,每一天只能给Ci个女神照相,每一天只能只能拍Di张照片,并且每个女神每天被拍的数量在[l...
分类:
其他好文 时间:
2014-08-31 22:36:51
阅读次数:
408
ZOJ 2588 Burning Bridges
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2588
题意:给定一个无向图连通图,(其中可能有重边),要求去掉一条边之后,使得整个图不再连通。输出这些符合条件的边的序号。
思路:这就是一个简单的无向图求割边,需要注意的是这个无向图有重边,重边一...
分类:
其他好文 时间:
2014-08-31 18:44:01
阅读次数:
267
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4744Escape Time IITime Limit: 2 Seconds Memory Limit: 65536 KBThere is a fire in LTR ’ s h....
分类:
其他好文 时间:
2014-08-30 12:30:29
阅读次数:
262
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3623
题意:给出N种可以建造的船和对方的塔生命值L,每种船给出建造时间t[i]和每秒输出dps[i],船坞在同一时间只能建造一支船(类似红警),问多少时间以后能够灭掉塔。
思路:dp[i]代表的是在前i秒内能造成的伤害量,把时间反过来考虑,对于每支船的建造,在前i...
分类:
其他好文 时间:
2014-08-29 16:11:28
阅读次数:
186
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4777
题意:有n天,告诉你每天的花费,别人给你一笔资金m,你自己也有一部分资金(可以假设花不完),每天只能花自己的钱或者花资金m中的钱,不能混着花,问m最多能花多少?
思路:考虑到数据比较小,n最多只有30,可以用枚举来做,枚举每天花m或者不花m,二进制枚举,...
分类:
其他好文 时间:
2014-08-29 01:24:46
阅读次数:
300
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3629
思路:找规律,发现符合要求的数为
[0,1)
[4,9)
[16,25)
[36,49)
…………
[n^2 , (n+1)^2)
发现 n^2 到(n+1)^2(n为偶数)前开后闭的区间为符合要求的数,然后发现(n+1)*(n+1)-n*n...
分类:
其他好文 时间:
2014-08-28 22:49:06
阅读次数:
311
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3625题意:注意:1、欧拉常数为$euler=0.57721566490153286060651209$2、用long double3、输出方法:两种cout setpr...
分类:
其他好文 时间:
2014-08-28 22:23:46
阅读次数:
468
翻译:
假设我们有一个方形城市。每一个方块代表一个街道或者一堵墙。每个碉堡有四个发射口,分别对应东南西北。
这个我们假设每个子弹有足够的威力可以射击任意距离并且可以摧毁这个方向上碉堡。另外,一堵墙可以抵挡子弹并使其停下。
我们的目标是在一个城市中安放尽可能多的碉堡并且使得任意两个碉堡都不能相互摧毁。一种碉堡的安放方法就是没有任意两个
碉堡在一条水平或者垂直线,除非他们直接由一堵墙隔离。在这...
分类:
其他好文 时间:
2014-08-28 11:26:59
阅读次数:
219
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4918
昨天的排位,最初我还以为思维题,然后队友说状压DP,直接放弃,赛后看了队友的代码,在搜下网上的,发现队友的代码居然是最短的,膜拜啊~~~~~~~
思路是队友 A.L.的
dp[s]=min(dp[s],dp[s']+1)
其中s'可以由s通过一次正着剪指甲或者反着...
分类:
其他好文 时间:
2014-08-27 18:52:58
阅读次数:
176