world_only_me吧 关注:93贴子:11,879
1000
#include <iostream>#include <cstdio>using namespace std;int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);}


IP属地:重庆1楼2016-03-29 18:13回复
    1001
    #include <iostream>#include <cstdio>using namespace std;int main(){ int a[11],f[101],n,i,k; for(i=1;i<=10;i++)scanf("%d",&a[i]); scanf("%d",&n); for(i=1;i<=n;i++)f[i]=9999999; f[1]=a[1]; for(i=2;i<=n;i++) { for(k=1;k<=i/2;k++) if(f[i]>f[k]+f[i-k])f[i]=f[k]+f[i-k]; if((i<=10)&&(f[i]>a[i]))f[i]=a[i]; } printf("%d\n",f[n]); return 0;}


    IP属地:重庆2楼2016-03-29 18:14
    回复
      1002
      #include <cstdio>
      using namespace std;
      int main()
      {
      int chinese[5001],math[5001],n,i,j,temp;
      scanf("%d",&n);
      for(i=1;i<=n;i++)scanf("%d",&math[i]);
      for(i=1;i<=n;i++)scanf("%d",&chinese[i]);
      for(i=1;i<=n-1;i++)
      for(j=1;j<=n-i;j++)
      if((math[j]<math[j+1])||((math[j]==math[j+1])&&(chinese[j]<chinese[j+1])))
      {
      temp=math[j];
      math[j]=math[j+1];
      math[j+1]=temp;
      temp=chinese[j];
      chinese[j]=chinese[j+1];
      chinese[j+1]=temp;
      }
      for(i=1;i<=n;i++)printf("%d %d\n",math[i],chinese[i]);
      return 0;
      }


      IP属地:重庆3楼2016-03-29 18:15
      回复
        1760
        #include <iostream>
        #include <cstdio>
        #include <algorithm>
        #include <queue>
        using namespace std;
        const int maxn = 10010;
        struct node
        {
        int dist, fuel;
        };
        node Pos[maxn];
        int n, L, P;
        bool cmp(node a, node b)
        {
        return a.dist > b.dist;
        }
        int main()
        {
        scanf("%d", &n);
        priority_queue<int> heap;
        for(int i = 0; i < n; i++)
        scanf("%d %d", &Pos[i].dist, &Pos[i].fuel);
        sort(Pos, Pos + n, cmp);
        scanf("%d %d", &L, &P);
        int t = 0;
        heap.push(P);
        int Cnt = 0;
        while(L > 0 && !heap.empty())
        {
        t++;
        int tmp = heap.top();
        heap.pop();
        L -= tmp;
        while(Cnt < n && L <= Pos[Cnt].dist)
        heap.push(Pos[Cnt++].fuel);
        }
        if(L<=0)printf("%d\n",t-1); else printf("-1\n");
        return 0;
        }


        IP属地:重庆4楼2016-03-29 18:21
        回复
          1010


          IP属地:重庆6楼2016-03-29 19:28
          回复
            #include <iostream>
            #include <cstdio>
            using namespace std;
            int f[201][201],v[201],n,i,j,k,temp,maxx=0,t,tt;
            int main()
            {
            scanf("%d",&n);
            for(i=1;i<=n;i++)
            {
            scanf("%d",&v[i]);
            v[n+i]=v[i];
            }
            //dp
            for(j=2;j<=n;j++)
            for(i=1;i<=n;i++)
            {
            for(k=1;k<j;k++)
            {
            temp=f[i][k]+f[i+k][j-k]+v[i]*v[i+k]*v[i+j];
            if(f[i][j]<temp)f[i][j]=temp;
            }
            f[i+n][j]=f[i][j];
            }
            for(i=1;i<=n;i++)
            if(maxx<f[i][n])maxx=f[i][n];
            printf("%d\n",maxx);
            return 0;
            }


            IP属地:重庆7楼2016-03-29 19:28
            回复
              1022
              #include <iostream>#include <cstdio>using namespace std;long long n;int main(){scanf("%I64d",&n);printf("%I64d",(2*n+1)*n*(n+1)/6);return 0;}


              IP属地:重庆9楼2016-03-29 19:28
              回复
                1869同1226


                IP属地:重庆12楼2016-03-29 19:31
                回复
                  3609
                  #include <iostream>
                  #include <cstdio>
                  #include <cmath>
                  #include <algorithm>
                  #define maxn 5000050
                  using namespace std;
                  bool f[maxn][2];
                  int main()
                  {
                  int n,a,b;
                  scanf("%d%d%d",&n,&a,&b);
                  f[0][0]=true;
                  for(int j=0;j<=1;j++)
                  for(int i=0;i<=n;i++)
                  {
                  if(f[i][j])
                  {
                  if(i+a<=n)f[i+a][j]=true;
                  if(i+b<=n)f[i+b][j]=true;
                  if(!j)f[i/2][1]=true;
                  }
                  }
                  for(int i=n;i>=0;i--)
                  {
                  if(f[i][0]==true||f[i][1]==true)
                  {
                  printf("%d",i);
                  return 0;
                  }
                  }
                  printf("0");
                  return 0;
                  }


                  IP属地:重庆15楼2016-03-29 19:32
                  回复
                    1718
                    #include <cstdio>
                    int a, b, c;
                    int main() {
                    int ans = 1;
                    scanf("%d%d%d", &a, &b, &c);
                    while (b > 0) {
                    if (b & 1)
                    ans = (ans * a) % c;
                    a = (a * a) % c;
                    b >>= 1;
                    }
                    printf("%d\n", ans);
                    }


                    IP属地:重庆16楼2016-03-29 19:34
                    回复
                      1038
                      #include <cstdio>
                      char tt, last;
                      int main() {
                      last = getchar();
                      while ((tt = getchar()) != '\n') {
                      if (tt < last) {
                      putchar(tt);
                      break;
                      }
                      putchar(last);
                      last = tt;
                      }
                      if (tt == '\n'){
                      putchar('\n');
                      return 0;
                      }
                      while ((tt = getchar()) != '\n')
                      putchar(tt);
                      putchar('\n');
                      return 0;
                      }


                      IP属地:重庆17楼2016-03-29 19:36
                      回复
                        嗅探器(无)
                        #include<cstdio>
                        #include<iostream>
                        using namespace std;
                        const int maxn=1005,maxe=1005;
                        int dfn[maxn],son[maxn],low[maxn];
                        int n,a,b,time,ans=2e9;
                        bool map[maxn][maxn],is_cut[maxn],ok=false;
                        int tarjan(int x,int father){
                        int i,v;
                        dfn[x]=low[x]= ++time;
                        for(i=1;i<=n;i++)
                        if(map[x][i]&&!dfn[i]){
                        son[x]+=tarjan(i,x);
                        low[x]=min(low[x],low[i]);
                        if(low[i]>=dfn[x])
                        if(father){is_cut[x]=true;
                        if(x!=b&&dfn[b]>=dfn[i]&&dfn[b]<=dfn[i]+son[i])
                        ans=min(ans,x),ok=true;
                        }
                        }
                        else if(map[x][i]&&i!=father)
                        low[x]=min(low[x],dfn[i]);
                        return son[x]+1;
                        }
                        int main(){
                        int x,y,i;
                        scanf("%d",&n);
                        while(true){
                        scanf("%d%d",&x,&y);
                        if(!x&&!y)break;
                        map[x][y]=map[y][x]=true;
                        }
                        scanf("%d%d",&a,&b);
                        tarjan(a,0);
                        if(ok)printf("%d",ans);
                        else printf("No solution");
                        }


                        IP属地:重庆18楼2016-03-29 19:47
                        回复
                          1122
                          #include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <queue>using namespace std;struct node{int f,d;}T[26],t;bool operator<(node a,node b){return a.f<b.f;} int walk[26],y;int main(){priority_queue<node>q;int n,i,h,sum,time,ans=0,j,c;scanf("%d%d",&n,&h);h=h*12;for(i=1;i<=n;i++)scanf("%d",&T[i].f);for(i=1;i<=n;i++)scanf("%d",&T[i].d);for(i=2;i<=n;i++){scanf("%d",&c);walk[i]=walk[i-1]+c;} for(i=1;i<=n;i++) { sum=0; time=h-walk[i]; for(j=1;j<=i;j++)q.push(T[j]); while(time>0) { t=q.top(); sum=sum+q.top().f; t.f=t.f-q.top().d;q.pop(); if(t.f<0)t.f=0; q.push(t); time--; } if(sum>ans)ans=sum; } printf("%d",ans);}


                          IP属地:重庆19楼2016-03-29 19:52
                          回复
                            1439
                            #include<iostream>using namespace std;int f[41][41][41][41];int s[351];int main(){int n,m,x;cin>>n>>m;int a=0,b=0,c=0,d=0;for(int i=0;i<n;i++) cin>>s[i]; for(int i=1;i<=m;i++) { cin>>x; if(x==1)a++; if(x==2)b++; if(x==3)c++; if(x==4)d++; } for(int i=0;i<=a;i++) for(int j=0;j<=b;j++) for(int k=0;k<=c;k++) for(int l=0;l<=d;l++) { if(i!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]); if(j!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]); if(k!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]); if(l!=0)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]); f[i][j][k][l]+=s[i+j*2+k*3+l*4]; } cout<<f[a][b][c][d];return 0;}


                            IP属地:重庆20楼2016-03-29 19:53
                            回复
                              1050
                              #include <iostream>#include<cstdio>using namespace std;int qp[18][18];bool ok[18][18];int xx[9]={0,1,2,2,1,-1,-2,-2,-1};int yy[9]={0,2,1,-1,-2,-2,-1,1,2};int xa[2]={0,1};int ya[2]={1,0};int main(){int i,j,n,m,x,y,k;scanf("%d%d%d%d",&n,&m,&x,&y);for(i=0;i<=n;i++)for(j=0;j<=m;j++)qp[i][j]=0;for(i=0;i<=8;i++)if((x+xx[i]>=0)&&(x+xx[i]<=n)&&(y+yy[i]>=0)&&(y+yy[i]<=m)){ok[x+xx[i]][y+yy[i]]=true;qp[n][m]=1;}for(i=n;i>=0;i--)for(j=m;j>=0;j--){if(ok[i][j]==0)for(k=0;k<=1;k++)if((ok[i+xa[k]][j+ya[k]]==0)&&(i+xa[k]<=n)&&(j+ya[k]<=m))qp[i][j]+=qp[i+xa[k]][j+ya[k]];}printf("%d",qp[0][0]);return 0;}


                              IP属地:重庆21楼2016-03-29 19:54
                              回复