http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5170 参考: http://blog.csdn.net/cc_again/article/details/24841249 UPDATE: 第二次做的感受,说下这道题为什么用递推.对于这种排序,且连续至多的问题,每个点放什么受到之前那个点是什么的影响,也就是说这个点的情况可以由前面那个点的情况推出来 题目意思: 给n个士兵排队,每个士兵三种G.R.P可选,求至少有m个连续G士…
题意:有三个兵种R,G,C,选取N个排成一列,要求G至少有M个连续的,R至多有K个连续的,问有多少种排列方式. 此题与UVa 10328 - Coin Toss非常相似,都是问某个字符连续出现的种数.题中问至少连续的排列个数可以转化为至多连续来计算,但是难点在于这次需要算两个连续的兵种,而且有三个兵种. 试着从那个题的角度考虑,最终的答案可以是这样:N个士兵中,G至多连续N个.R至多连续K个的排列个数 减去 G至多连续M-1个.R至多连续K个的排列个数. 我们要考虑计算的时候G与R是否相互影响,…
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19825 这道题和http://www.cnblogs.com/qlky/p/5022649.html一样,而且更简单 但是ZOJ那道题是输出MOD的结果,所以实际上结果是非常大的,这里没有MOD,所以要用大数 大数待续..…
Max Sequence Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18511   Accepted: 7743 Description Give you N integers a1, a2 ... aN (|ai| <=1000, 1 <= i <= N). You should output S.  Input The input will consist of several test cases. F…
动态规划(Dynamic Programming, DP)是一种用来解决一类最优化问题的算法思想,简单来使,动态规划是将一个复杂的问题分解成若干个子问题,或者说若干个阶段,下一个阶段通过上一个阶段的结果来推导出,为了避免重复计算,必须把每阶段的计算结果保存下来,方便下次直接使用. 动态规划有递归和递推两种写法.一个问题必须拥有重叠子问题和最优子结构才能使用动态归来来解决,即一定要能写出一个状态转移方程才能使用动态规划来解决. 最大连续子序列和: 令状态dp[i]表示以A[i]作为末尾的连续序列的…
There are N little kids sitting in a circle, each of them are carrying some java beans in their hand. Their teacher want to select M kids who seated in M consecutive seats and collect java beans from them. The teacher knows the number of java beans e…
Edward has an array A with N integers. He defines the beauty of an array as the summation of all distinct integers in the array. Now Edward wants to know the summation of the beauty of all contiguous subarray of the array A. Input There are multiple…
Attack on Titans Time Limit: 2 Seconds      Memory Limit: 65536 KB Over centuries ago, mankind faced a new enemy, the Titans. The difference of power between mankind and their newfound enemy was overwhelming. Soon, mankind was driven to the brink of…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3747 题意: 现在有n个士兵进行排序,只有G.R.P三种士兵,要求至少有m个G士兵连续和至多k个R士兵连续,问可以有多少种排法. 思路: 由于题目中一个是至少,另一个是至多,所以先把至少改成至多:(至多有n个G士兵连续,k个R士兵连续)-(至多有m-1个士兵连续,k个士兵连续),这样一来,剩下的情况当中G士兵的个数就是[m,n],满足至少有m个G士兵连续. d[i][j]…
题意:给出m,序列第i位是第i-1位的至少2倍大,的求长度为n且每一位范围均在1-m的序列方案数 对求方案数做不到信手拈来的感觉,需要加强 用简单的预处理和最优子结构能优化到很不错的效率了 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<stri…