POJ 1850 Code
生活随笔
收集整理的這篇文章主要介紹了
POJ 1850 Code
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//這題和上題沒(méi)什么區(qū)別
// 就是數(shù)據(jù)大了點(diǎn)而已
// 直接參考上題 http://www.cnblogs.com/372465774y/p/3604095.html
#include <iostream> #include <string> #include<sstream> #include <cmath> #include <map> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; #define LL long long LL C[40][40]; int dp[40]; void init() {int i,j;for(i=0;i<=30;i++) C[i][0]=1;for(i=1;i<=30;i++)for(j=1;j<=i;j++)C[i][j]=C[i-1][j-1]+C[i-1][j]; } char str[10]; int h[30]; LL fun(int ln,int index) {int i=1,j=1;LL sum=0;char c=str[index];int lf=26;if(index>0) {index--;lf='z'-str[index];i=str[index]-'a'+1;}for(;i<=26;i++)if(!h[i]){if(c==(i-1+'a'))break;else{sum=sum+ C[lf-j][ln-1];j++;}}return sum; } int main() {init();int i,j;while(scanf("%s",str)!=EOF){memset(h,0,sizeof(h));int len=strlen(str);int flag=0;LL ans=0;for(i=1;i<len;i++)ans+=C[26][i];for(i=0;i<len;i++)for(j=i+1;j<len;j++)if(str[i]>=str[j])flag=1;if(flag) printf("0\n");else{for(i=0;i<len;i++){ans=ans+fun(len-i,i);h[str[i]-'a'+1]=1;// lf--; }printf("%lld\n",ans+1);}}return 0; }
// 就是數(shù)據(jù)大了點(diǎn)而已
// 直接參考上題 http://www.cnblogs.com/372465774y/p/3604095.html
#include <iostream> #include <string> #include<sstream> #include <cmath> #include <map> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; #define LL long long LL C[40][40]; int dp[40]; void init() {int i,j;for(i=0;i<=30;i++) C[i][0]=1;for(i=1;i<=30;i++)for(j=1;j<=i;j++)C[i][j]=C[i-1][j-1]+C[i-1][j]; } char str[10]; int h[30]; LL fun(int ln,int index) {int i=1,j=1;LL sum=0;char c=str[index];int lf=26;if(index>0) {index--;lf='z'-str[index];i=str[index]-'a'+1;}for(;i<=26;i++)if(!h[i]){if(c==(i-1+'a'))break;else{sum=sum+ C[lf-j][ln-1];j++;}}return sum; } int main() {init();int i,j;while(scanf("%s",str)!=EOF){memset(h,0,sizeof(h));int len=strlen(str);int flag=0;LL ans=0;for(i=1;i<len;i++)ans+=C[26][i];for(i=0;i<len;i++)for(j=i+1;j<len;j++)if(str[i]>=str[j])flag=1;if(flag) printf("0\n");else{for(i=0;i<len;i++){ans=ans+fun(len-i,i);h[str[i]-'a'+1]=1;// lf--; }printf("%lld\n",ans+1);}}return 0; }
?
轉(zhuǎn)載于:https://www.cnblogs.com/372465774y/p/3604123.html
總結(jié)
以上是生活随笔為你收集整理的POJ 1850 Code的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 记录一下之前的
- 下一篇: springquartz的LocalDa