分析:
建图:每个任务和每一天分别看做一个点,添加源和汇点。源点和每个任务连一条边,每天边的容量为完成对应任务所需处理次数。若第i个任务能够在Si至Ei天处理,则由该任务向这些天分别连一条边,容量为1,表示此任务每天只能被处理一次。最后,每一天分别连一条边到汇点,容量为机器数M,即每天可以处理M个任务。若求出的最大流等于所有任务需要处理的次数之和,说明能完成任务;否则,不能。
#inc...
分类:
编程语言 时间:
2015-05-19 16:36:17
阅读次数:
139
分析:贪心,首先找到最右边的第一个左边界和最左边的第一个右边界。之后在判断是否有一个及一个以上的区间在这两个值之间,若有则能找到符合题意的三个区间,否则不能。
注意:这里利用的unsigned int的自然溢出决解了取模问题;第二个是一定生成完数据后在交换Li和Ri的值,这里被坑残了。
#include
using namespace std;
//__int64 mod=429496729...
分类:
其他好文 时间:
2015-05-18 23:03:05
阅读次数:
174
分析:dp[i][j][k]表示长度为i的串含j个相邻的1并且以k为结尾的种数。状态转移方程:dp[i][j][0]=dp[i-1][j][0]+dp[i-1][j][1];dp[i][j][1]=dp[i-1][j][0]+dp[i-1][j-1][1];边界dp[1][0][0]=dp[1][0][1]=1;。
#include
using namespace std;
int dp[10...
分类:
其他好文 时间:
2015-05-18 16:44:06
阅读次数:
148
分析:从前往后递推第一个和sum,然后往后依次划分,当第一次能够划分完,就得到最小的结果了。
#include
using namespace std;
int a[10005];
int P,M,T,K;
void solve()
{
int sum,cursum,i,j,j2;
bool flag;
flag=false;
for(i=0,j2=0,sum=0;i<M;i++)...
分类:
其他好文 时间:
2015-05-17 13:47:50
阅读次数:
114
看看杭电上的注册时间,去年10月29号我走上了ACM算法竞赛的道路。到现在其实不过半年多,直到今天看到一篇别人的ACM的感悟,以及评论区的大牛点评。我突然发现我竟然不知道我是以什么样的心态去对待ACM。此时心中突然产生了很多疑问:为什么我会选择ACM这条路?我认为我今天只要不搞明白这个问题,那么我在ACM的道路上就不会有所突破。所以我静下心来仔细的想了一个下午。那么就现在而言,我对ACM是纯粹对算...
分类:
其他好文 时间:
2015-05-16 18:23:03
阅读次数:
123
分析:数位DP的入门联系题,通过该題对数位DP有感觉了;dp[len][presum]代表长度为len权值不大于presum的数。记忆化搜索提高效率,除边界(因为边界上算出来的答案在其它数中可能是不完整的)外记录dp[len][presum]的值,下次发现以前计算过就直接return;dfs(len, presum, fg)表示求长度为len,不超过pre的全部符合条件的值。fg是控制边界的。
...
分类:
其他好文 时间:
2015-05-14 08:46:33
阅读次数:
108
分析:这题也可以自己写,但是使用STL的函数next_permutation就非常方便了。
#include
#include
#include
using namespace std;
int main()
{
int t,n;
char a[100];
cin>>t;
while(t--)
{
cin>>n>>a;
if(next_permutation(a,a+str...
分类:
其他好文 时间:
2015-05-13 23:16:43
阅读次数:
114
分析:两个不同方向开始跳跃,跳过数字相同,就相当于求回文子序列了。用dp求出从一个位置到另一个位置的最长回文子序列,相当于把[1-n]分成区间[1-x]和[x+1,n],结果就是两区间最长回文串子序列之和。枚举中间点i,求出max(dp[1,i]+dp[i+1,n])即得最终结果,回文非连续序列,从前往后,从后往前序列相同,求出区间内最长回文序列,由于是环,分成两部分,1~i,i+1~n,A可从i...
分类:
其他好文 时间:
2015-05-13 22:02:01
阅读次数:
152
题意:地图是一个编号为1~n的节点的树,节点1是敌方基地,其他叶节点是我方基地。敌人基地会出来敌人,为了防止敌人攻进我方基地,我们可以选择造塔。每个节点只能造一个塔,节点i有ki种塔供选择,价值和攻击力为price_i, power_i,攻击力power_i是让敌人经过这个节点时让敌人的HP减少power_i点。因此从敌人基地到我方任意一个基地的路径,这条路径上所有塔的攻击力之和,就是这个基地的抵...
分类:
其他好文 时间:
2015-05-13 19:52:34
阅读次数:
309