Advertisement
MaskerQwQ

Remember to choose C++

Jun 16th, 2022
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  1. ********************************
  2. 最长回文长度
  3. #include<bits/stdc++.h>
  4.  
  5. using namespace std;
  6. string s;
  7. int longestPalindromeSubseq(string s) {
  8.         int n = s.length();
  9.         vector<vector<int>> dp(n, vector<int>(n));
  10.         for (int i = n - 1; i >= 0; i--) {
  11.             dp[i][i] = 1;
  12.             char c1 = s[i];
  13.             for (int j = i + 1; j < n; j++) {
  14.                 char c2 = s[j];
  15.                 if (c1 == c2) {
  16.                     dp[i][j] = dp[i + 1][j - 1] + 2;
  17.                 } else {
  18.                     dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
  19.                 }
  20.             }
  21.         }
  22.         return dp[0][n - 1];
  23. }
  24. int main(){
  25.     while(cin>>s){
  26.         cout<<longestPalindromeSubseq(s)<<endl;
  27.     }
  28.     return 0;
  29. }
  30. ***********************************************
  31. 餐厅点餐
  32. #include<bits/stdc++.h>
  33.  
  34. using namespace std;
  35.  
  36. int main()
  37. {  
  38.     int T;
  39.     cin>>T;
  40.     while(T--){
  41.         int a[11],b[11],c[11],d[11],e[11];
  42.         int a1,b1,c1,d1,e1;
  43.         int num=0,sum1=0,sum2=0,sum3=0;
  44.         cin>>a1>>b1>>c1>>d1>>e1;
  45.         for(int i=0;i<a1;++i) cin>>a[i];
  46.         for(int i=0;i<b1;++i) cin>>b[i];
  47.         for(int i=0;i<c1;++i) cin>>c[i];
  48.         for(int i=0;i<d1;++i) cin>>d[i];
  49.         for(int i=0;i<e1;++i) cin>>e[i];
  50.         int minm,maxm;
  51.         cin>>minm>>maxm;
  52.         for(int i=0;i<d1;++i){
  53.             for(int j=i;j<d1;++j){
  54.  
  55.                 if(j==i) sum1=d[i];
  56.                 else sum1=d[i]+d[j];
  57.  
  58.                 for(int k=0;k<e1;++k){
  59.                     for(int l=k;l<e1;++l){
  60.  
  61.                         if(l==k) sum2=e[k];
  62.                         else sum2=e[k]+e[l];
  63.  
  64.                         for(int p=0;p<a1;++p){
  65.                             for(int q=0;q<b1;++q){
  66.  
  67.                                 sum3=a[p]+b[q];
  68.                                 int sum=0;
  69.                                 sum+=sum3+sum1+sum2;
  70.                                 if(sum>=minm&&sum<=maxm) num++;
  71.  
  72.                             }
  73.                         }
  74.                         for(int r=0;r<c1;++r){
  75.  
  76.                             int sum=0;
  77.                             sum+=sum1+sum2+c[r];
  78.                             if(sum>=minm&&sum<=maxm) num++;
  79.  
  80.                         }
  81.                     }
  82.                 }
  83.             }
  84.         }
  85.         cout<<num<<endl;
  86.     }
  87.     return 0;
  88.  }
  89. ******************************************************
  90. 智力大冲浪
  91. #include<bits/stdc++.h>
  92.  
  93. using namespace std;
  94.  
  95. struct node{
  96.     int time,cost;
  97. };
  98.  
  99. node s[505];
  100.  
  101. int book[505];
  102.  
  103. int cmp(const node &a,const node &b){
  104.     return a.cost>b.cost;
  105. }
  106.  
  107. int main(){
  108.     int m;
  109.     while(scanf("%d",&m)!=EOF){
  110.         memset(book,0,sizeof(book));
  111.         int n;
  112.         cin>>n;
  113.         for(int i=0;i<n;i++){
  114.             cin>>s[i].time;
  115.         }
  116.         for(int i=0;i<n;i++){
  117.             cin>>s[i].cost;
  118.         }
  119.         sort(s,s+n,cmp);
  120.         int flag,sum=0;
  121.         for(int i=0;i<n;i++){
  122.             flag=0;
  123.             for(int j=s[i].time;j>=1;j--){
  124.                 if(book[j]==0){
  125.                     book[j]=1;
  126.                     flag=1;
  127.                     break;
  128.                 }
  129.             }
  130.             if(flag==0){
  131.                 sum+=s[i].cost;
  132.             }
  133.         }
  134.         cout<<m-sum<<endl;
  135.     }
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement