zoukankan      html  css  js  c++  java
  • 烦人的dp

    1050

     1 #include<cstring>
     2 #include<iostream>
     3 #include<cstdio>
     4 
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n;
    10     while(cin>>n)
    11     {
    12         int a[200][200];
    13         memset(a,0,sizeof(a));
    14         for(int i=1;i<=n;i++)
    15             for(int j=1;j<=n;j++)
    16             {
    17                 cin>>a[i][j];
    18                 a[i][j]+=a[i-1][j];
    19             }
    20         int maxn=-0x3f3f3f3f;
    21         int b[200],dp[20000];
    22         memset(dp,0,sizeof(dp));
    23         for(int i=1;i<=n;i++)
    24         {
    25             for(int j=i;j<=n;j++)
    26             {
    27                 for(int k=1;k<=n;k++)
    28                 {
    29                     b[k]=a[j][k]-a[i-1][k];
    30                 }
    31                 int sum=0;
    32                 for(int k=1;k<=n;k++)
    33                 {
    34                     if(sum+b[k]<0){
    35                         sum=b[k];
    36                     }
    37                     else {
    38                         sum+=b[k];
    39                         if(sum>maxn) maxn=sum;
    40                     }
    41                 }
    42             }
    43         }
    44         cout<<maxn<<endl;
    45     }
    46 }
    47 //最大连续子序列
    LIS

     1083

     1 #include<cstring>
     2 #include<iostream>
     3 #include<cstdio>
     4 
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int T;
    10     cin>>T;
    11     while(T--)
    12     {
    13         int n;
    14         int a[500];
    15         int b[500];
    16         cin>>n;
    17         memset(a,0,sizeof(a));
    18         memset(b,0,sizeof(b));
    19         while(n--)
    20         {
    21             int x,y;
    22             cin>>x>>y;
    23             if(x>y) swap(x,y);
    24             if(y%2) y++;
    25             for(int i=x;i<=y;i++)
    26             {
    27                 if(i%2) a[i]++;
    28                 else b[i]++;
    29             }
    30         }
    31         int maxn=0;
    32         for(int i=0;i<=400;i++)
    33         {
    34          //   cout<<a[i]<<' '<<b[i]<<endl;
    35             maxn=max(maxn,max(a[i],b[i]));
    36         }
    37         cout<<maxn*10<<endl;
    38     }
    39 }
    40 //标记走过路径
    YY

     1088

    DFS+DP
  • 相关阅读:
    Delphi 之 内存篇(二)
    VC++ 之 第八课(面向对象三)
    Delphi API 之 BitBlt
    我所认为的极客精神(一)
    DOS程序员手册(十五)
    DOS程序员手册(十四)
    DOS程序员手册(十三)
    DOS程序员手册(十二)
    DOS程序员手册(十一)
    DOS程序员手册(十)
  • 原文地址:https://www.cnblogs.com/wsaaaaa/p/4317858.html
Copyright © 2011-2022 走看看