ZOJ Monthly, December 2013

2014-11-24 07:27:26 · 作者: · 浏览: 0

首先说一下 不是解题报告 我很水 才做出2只 只是记录一下做题状况 就做出2题 反省加更加努力

E Eternal Reality

简单dp 高哲写的

#include 
  
   
#include 
   
     int main() { int l,n,x,y; int i,j,k; int s[2100]; int dp[2][2100]; while(scanf("%d %d %d %d",&l,&n,&x,&y)!=EOF) { memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { scanf("%d",&s[i]); } int temp; for(i=1;i<=n;i++) { temp=0; for(j=i;j
    
     =s[j]&&l+1!=6) temp++; } for(;j
     
      =s[j]) temp++; } dp[0][i]=dp[1][i-1]+temp; if(l>=s[i]) dp[1][i]=dp[1][i-1]+1; else dp[1][i]=dp[1][i-1]; if(i>=x+y-1) { if(dp[0][i-x-y+1]>dp[1][i]) dp[1][i]=dp[0][i-x-y+1]; } } /* for(i=0;i<2;i++) { for(j=0;j<=n;j++) { printf("%d ",dp[i][j]); } puts(""); }*/ int maxx=0; for(i=0;i<=n;i++) { if(dp[0][i]>maxx) maxx=dp[0][i]; if(dp[1][i]>maxx) maxx=dp[1][i]; } printf("%d\n",maxx); } return 0; }
     
    
   
  


F Salary Increasing

签到题 不想说什么

#include
  
   
#include
   
     int s[200010]; int main() { int j,a,n,q,k,x,y,z; while(scanf("%d %d",&n,&q)!=EOF) { long long i; memset(s,0,sizeof(s)); for(i=0;i
    
     =x;i--) { s[i+z]+=s[i]; s[i]=0; } } long long sum=0; for(i=0;i<200010;i++) { sum=sum+s[i]*i; } printf("%lld\n",sum); } return 0; }