注意邊界條件,如000010之類的例外,沒有'.' pku1001要比hdu1063弱
大數真煩人,誰讓我不會java呢
#include<stdio.h> #include<string.h> #define N 200 int main() { int i,j,k,flag,low,high,n,r[N],t[N],result[N]; char input[10]; while(scanf("%s%d",input,&n)!=EOF) { memset(result,0,N*sizeof(int)); memset(r,0,N*sizeof(int)); memset(t,0,N*sizeof(int));t[0]=1; j=0; for(i=5;i>=0;i--) if(input[i]!='.') r[j++]=input[i]-'0'; for(i=5;i>=0;i--) if(input[i]=='.') break; flag=5-i; if(i==-1) flag=0; if(n==0) { printf("1/n"); continue; } k=0; for(i=0;i<N;i++) k+=r[i]; if(k==0) { printf("0/n"); continue; } for(k=0;k<n;k++) { for(i=0;i<5;i++) for(j=0;j<N;j++) result[j+i]+=t[j]*r[i]; for(j=0;j<N;j++) if(result[j]>9) { result[j+1]+=result[j]/10; result[j]%=10; } for(i=0;i<N;i++) t[i]=result[i]; memset(result,0,N*sizeof(int)); } for(i=0;i<N;i++) result[i]=t[i]; for(i=0;i<N;i++) if(result[i]) { low=i; break; } for(i=N-1;i>=0;i--) if(result[i]) { high=i; break; } flag=n*flag-1; if(flag>=high) { printf("."); for(i=flag;i>=low;i--) printf("%d",result[i]); printf("/n"); } else if(flag<low) { for(i=high;i>flag;i--) printf("%d",result[i]); printf("/n"); } else { for(i=high;i>=low;i--) { if(i==flag) printf("."); printf("%d",result[i]); } printf("/n"); } } }
prim算法,用double,我第一次用float wa,看了別人代碼改成double就過了。 #include<stdio.h> #include<math.h> #define N 110 #define max 9999999 d
取消註釋, 看跑路過程! 貪心思路: 1. 優先前往油價比當前油價更低的油站,爲了前往這個油站,油箱裏的油要加最少(即跑到下一站油量恰好爲0),爲了能去那裏加更便宜的油 2. 沒有比當前油價低的油站時,則在能跑到的油站裏尋找價格最低的
和PAT書上的思路不一樣。我使用了map,費內存是真的。但是換來了運行時間。 使用map的思路是這樣的。 原來用數組,下標裏面存值。 用map則是key是值,value是原來數組的下標,即map<值,下標> 這樣就O(1)訪問了。 #
題目描述:此題如果純暴力的話應該是會超時的(沒試過)考慮在暴力的基礎上優化一下,先對數組排序,然後枚舉第一個數 i,那麼剩下兩個數之和爲 j + k = 0 - i,然後設立兩個指針j和k指向頭和尾,對剩下的數組從兩頭到中間搜索答案,時間
文章同步更新於:https://blog.dalao.icu,請訪問該博客獲得更好的閱讀體驗。 1.C++IO流的同步和綁定 在C++中,cin和cout的速度其實不併不慢,C++中的流的IO速度相當的快,其速度與初始設定的緩存