摘要: 题意:给定一个树形图,现在选择其中一个节点,为了从此节点到达所有的其他节点需要改变一些边的方向,求出最小需要修改的边数以及满足最优解的节点。。解法:树形dp,第一次随意指定一个点为根,然后根据子节点的信息更新父节点,dp[i][0]表示使得i节点能到达它所有子节点需要修改的边数。 第二次dp,根据第一次dp的结果,利用父节点的信息来更新子节点,dp[i][2]表示使得i节点到达其他所有节点需要修改的边数。 如果pre[i]指向i,那么dp[i][1]=dp[pre[i]][0]-1; 如果i指向pre[i],那么dp[i][1]=dp[pre[i]][0]+1; 1 #include<i 阅读全文
posted @ 2012-11-06 17:32 silver__bullet 阅读(583) 评论(0) 推荐(1) 编辑
摘要: A:...比赛的时候居然写挂了。。。A 1 #include<cstdio> 2 int main(){ 3 int y,k,n; 4 while(~scanf("%d%d%d",&y,&k,&n)){ 5 bool f=0; 6 for(int i=1;i*k<=n;i++){ 7 if(i*k>y){ 8 if(f)printf(" "); 9 printf("%d",i*k-y);10 f=1;11 ... 阅读全文
posted @ 2012-11-06 13:48 silver__bullet 阅读(253) 评论(0) 推荐(0) 编辑