Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ********************************
- 最长回文长度
- #include<bits/stdc++.h>
- using namespace std;
- string s;
- int longestPalindromeSubseq(string s) {
- int n = s.length();
- vector<vector<int>> dp(n, vector<int>(n));
- for (int i = n - 1; i >= 0; i--) {
- dp[i][i] = 1;
- char c1 = s[i];
- for (int j = i + 1; j < n; j++) {
- char c2 = s[j];
- if (c1 == c2) {
- dp[i][j] = dp[i + 1][j - 1] + 2;
- } else {
- dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
- }
- }
- }
- return dp[0][n - 1];
- }
- int main(){
- while(cin>>s){
- cout<<longestPalindromeSubseq(s)<<endl;
- }
- return 0;
- }
- ***********************************************
- 餐厅点餐
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- int T;
- cin>>T;
- while(T--){
- int a[11],b[11],c[11],d[11],e[11];
- int a1,b1,c1,d1,e1;
- int num=0,sum1=0,sum2=0,sum3=0;
- cin>>a1>>b1>>c1>>d1>>e1;
- for(int i=0;i<a1;++i) cin>>a[i];
- for(int i=0;i<b1;++i) cin>>b[i];
- for(int i=0;i<c1;++i) cin>>c[i];
- for(int i=0;i<d1;++i) cin>>d[i];
- for(int i=0;i<e1;++i) cin>>e[i];
- int minm,maxm;
- cin>>minm>>maxm;
- for(int i=0;i<d1;++i){
- for(int j=i;j<d1;++j){
- if(j==i) sum1=d[i];
- else sum1=d[i]+d[j];
- for(int k=0;k<e1;++k){
- for(int l=k;l<e1;++l){
- if(l==k) sum2=e[k];
- else sum2=e[k]+e[l];
- for(int p=0;p<a1;++p){
- for(int q=0;q<b1;++q){
- sum3=a[p]+b[q];
- int sum=0;
- sum+=sum3+sum1+sum2;
- if(sum>=minm&&sum<=maxm) num++;
- }
- }
- for(int r=0;r<c1;++r){
- int sum=0;
- sum+=sum1+sum2+c[r];
- if(sum>=minm&&sum<=maxm) num++;
- }
- }
- }
- }
- }
- cout<<num<<endl;
- }
- return 0;
- }
- ******************************************************
- 智力大冲浪
- #include<bits/stdc++.h>
- using namespace std;
- struct node{
- int time,cost;
- };
- node s[505];
- int book[505];
- int cmp(const node &a,const node &b){
- return a.cost>b.cost;
- }
- int main(){
- int m;
- while(scanf("%d",&m)!=EOF){
- memset(book,0,sizeof(book));
- int n;
- cin>>n;
- for(int i=0;i<n;i++){
- cin>>s[i].time;
- }
- for(int i=0;i<n;i++){
- cin>>s[i].cost;
- }
- sort(s,s+n,cmp);
- int flag,sum=0;
- for(int i=0;i<n;i++){
- flag=0;
- for(int j=s[i].time;j>=1;j--){
- if(book[j]==0){
- book[j]=1;
- flag=1;
- break;
- }
- }
- if(flag==0){
- sum+=s[i].cost;
- }
- }
- cout<<m-sum<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement