欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 做北大acm题的心得体会

做北大acm题的心得体会

时间:2015-01-06 17:23

北大ACM中的1001浮点数题咋做啊

使用JAVA的BigDecimal就可以:import java.util.*;class Main{ static{ for(Scanner i=new Scanner(System.in);i.hasNext();) System.out.println(i.nextBigDecimal().pow(i.nextInt()) .toPlainString().replaceAll(^0|\\\\\\\\.?0*$,)); }}用GCC的话可以这样写:float v;u;main(n){for(;~scanf(%f%d,&v,&n);puts()){int*r,p[999]={1},*q,t=p+n*4;for(;n--;)for(q=r=p;q<&n-2;r+=!*r&r

北大ACM的题,不懂怎么改

#includeusing namespace std;#includeint TransHaab(char *NofM){if(strcmp(NofM,pop)==0)return 1;if(strcmp(NofM,no)==0)return 2;if(strcmp(NofM,zip)==0) \\\/\\\/ zip 中间多了个空格return 3;if(strcmp(NofM,zotz)==0)return 4;if(strcmp(NofM,tzec)==0)return 5;if(strcmp(NofM,xul)==0)return 6;if(strcmp(NofM,yoxkin)==0)return 7;if(strcmp(NofM,mol)==0)return 8;if(strcmp(NofM,chen)==0)return 9;if(strcmp(NofM,yax)==0)return 10;if(strcmp(NofM,zac)==0)return 11;if(strcmp(NofM,ceh)==0)return 12;if(strcmp(NofM,mac)==0)return 13;if(strcmp(NofM,kankin)==0)return 14;if(strcmp(NofM,muan)==0)return 15;if(strcmp(NofM,pax)==0)return 16;if(strcmp(NofM,koyab)==0)return 17;if(strcmp(NofM,cumhu)==0)return 18;if(strcmp(NofM,uayet)==0)return 19;}void TransTzd(int NofD){switch(NofD){case 1:cout<>m;for(int i=0;i>DNum>>temp>>NofM>>Hyears;dcount[i]=daycount(DNum,NofM,Hyears);}cout<

药剂可选用有

北大acm第2339题怎么做

我的AC代码:#includeint r, c;char map[100][100];int check(int i, int j, char s){ if((i - 1 >= 0 && map[i - 1][j] == s) || (i + 1 < r && map[i + 1][j] == s) || (j - 1 >= 0 && map[i][j - 1] == s) || (j + 1 < c && map[i][j + 1] == s)) return 1; else return 0;}int main(){ int i, j, k, n, t, f = 0; char temp[100][100]; scanf(%d, &t); while(t--) { scanf(%d%d%d , &r, &c, &n); if(f++) printf(\\\ ); for(i = 0; i < r; ++i) { for(j = 0; j < c; ++j) scanf(%c, &map[i][j]); getchar(); } for(k = 0; k < n; ++k) { for(i = 0; i < r; ++i) { for(j = 0; j < c; ++j) { switch(map[i][j]) { case 'R': if(check(i, j, 'P')) temp[i][j] = 'P'; else temp[i][j] = 'R'; break; case 'S': if(check(i, j, 'R')) temp[i][j] = 'R'; else temp[i][j] = 'S'; break; case 'P': if(check(i, j, 'S')) temp[i][j] = 'S'; else temp[i][j] = 'P'; break; } } } for(i = 0; i < r; ++i) { for(j = 0; j < c; ++j) { map[i][j] = temp[i][j]; } } } for(i = 0; i < r; ++i) { for(j = 0; j < c; ++j) { printf(%c, map[i][j]); } printf(\\\ ); } } return 0;}

求北大ACM 1001题高精度幂的【思路】

这个其实可以转化成大整数的乘法的,先把小数点往后面移,然后可以大整数乘法,最后把大整数除以刚才移掉的,也就是把小数占往左边移几位,这样的话大整数乘法做起来简单一些的.

北京大学ACM1016题怎么做

我的思路和你几乎是一样的,就是简化了些,你可以看下。

AC代码如下:#include #include #include using namespace std;int main(){int a[26],b[26];int lena,lenb,i;int flag;string sa,sb;while(cin>>sa>>sb){for(i=0;i<26;i++)a[i]=b[i]=0;lena=sa.length();lenb=sb.length();if(lena!=lenb){printf(NO\\\ );continue;}flag=1;for(i=0;i

北大ACM第1519道题

求解

DP思路: 如果是奇数ans[i]=ans[i-1] 如果是偶数,可分成前面由两个1 和 全部变成偶数的两块 ,ans[i]=ans[i-2]+ans[i\\\/2]; 综合可得出ans[i]=ans[i-2]+ans[i\\\/2] #include #include #define M 1000002 int ans[M]; int n; void init(); int main() { init(); while(scanf(%d,&n)==1) printf(%d\\\ ,ans[n]); return 0; } void init() { int i; memset(ans,0,sizeof(ans)); ans[1]=1; ans[2]=2; for(i=3;i<=1000000;i++) { ans[i]=ans[i-2]+ans[i\\\/2]; if(ans[i]>=1000000000) ans[i]%=1000000000; } } 用dp的思路求出递推公式,在大于1000000000时只要尾数,所以不需要高精度计算。

在discuss里都有提示的,以后有问题可以先看discuss

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片