03 2014 档案
摘要:题目链接:http://codeforces.com/problemset/problem/385/C题目大意:给定n个数与m个询问区间,问每个询问区间中的所有素数在这n个数中被能整除的次数之和解题思路:首先暴力打出一张素数表,最大的素数小于等于n个数中的最大值即可。在打表的过程就统计从2开始到当前素数的总的整除次数(简直简单粗暴),最后对于询问区间,找出该区间内的最小素数与最大素数在素数表中的位置,结果即为s[r]-s[l-1]代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespac...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1502题目大意:找出总的满足条件的字符串数,num(a)=num(b)=num(c)且任何前缀均满足num(a)>=num(b)>=num(c)解题思路:用dp[i][j][k]表示a取i个,b取j个,c取k个的状态下最多有多少种满足条件的情况,容易推得状态转移方程如下:dp[i][j][k]=dp[i-1][j][k](i>j时)+dp[i][j-1][k](j>k时)+dp[i][j][k-1](k>0时)根据该状态转移方程即可输出最后的结果dp[n][n][n]因
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3761题目大意:给定n个位置的小球,小球的运动方向只能是水平或者竖直的。按一定方向推动某球,当行径上有其他球时,停留在被撞球的位置,被撞的球沿原小球运动方向运动,当行径路径上没有其他球时,该小球被剔除。问:只能通过小球的相撞来剔除小球,最少能留下几个小球。解题思路:首先,可以用并查集找出互相连通的小球集合个数。因为每一次推动的结果可以看成是被推动的小球被剔除了,其他位置上的小球不动,所以可以从每个集合中任选一个小球作DFS。选择推动小球的方向即为该球指向其父亲节
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757题意:根据所给的台球规则,按照每次的结果计算最终两人的得分单纯的模拟题,分支比较多写起来较繁琐注意区分犯规与进球得分的规则:只要有犯规行为,都要按照规则给对手加分。无论是否进球。当进球时,如果有犯规行为,不仅分要加给对手,还要加上犯规惩罚 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define maxn 10005 8 i...
阅读全文

浙公网安备 33010602011771号