posts - 64, comments - 4, trackbacks - 0, articles - 0

pku_1247 & boj_1361

Posted on 2010-09-01 20:32 acronix 阅读(123) 评论(0)  编辑 收藏 引用 所属分类: qqy解题报告
//考点:  纯模拟
//思路:  只要枚举分割点 然后发现只要 记录到分割点前所有和顺便计算出总和sum就行  求余下部分的和只需用到sum和dp[i]
//提交情况: 1AC 感动得热泪盈眶啊
//收获:  练习了求和   知道怎样记录每个递加的过程 
//经验:  写了代码之后要检查 第一次写的时候就很冲动地把i++ 写成了 i+=2
//ACcode
#include<memory.h>
#include
<stdio.h>
#define MAXN 31
int a[MAXN];
int dp[MAXN];
int main()
{
    
int t,i;
    
while(1)
    {
        scanf(
"%d",&t);
        
if(t == 0break;
        
int sum=0;
        
for(i=1;i<=t;i++)
        {
            scanf(
"%d",&a[i]);
            dp[i]
=dp[i-1]+a[i];
        }
        sum
=dp[t];
        
bool flag = false;
        
int mark;
        
for(i=1;i<t;i++)
        {
            
if(dp[i] == sum-dp[i])
            {
                flag 
= true;
                mark 
= i;
                
break;
            }
        }
        
if(flag == false) printf("No equal partitioning.\n");
        
else  printf("Sam stops at position %d and Ella stops at position %d.\n",mark,mark+1);
        memset(dp,
0,sizeof(dp));
    }
    
return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理