日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

处女座和小姐姐(三)

發布時間:2024/10/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处女座和小姐姐(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://ac.nowcoder.com/acm/contest/329/G

題解:

std

#include <stdio.h> #include <string.h> #include <stdlib.h> #define SET0(x) memset(x,0,sizeof(x)); #define MAXN 10010 #define DMAX 100000000 char l[MAXN],r[MAXN]; int max(int a,int b){return a>b?a:b;} int ninepow[MAXN][1300]={0}; void out(int *src){for(int i=src[0];i>=1;i--){if(i!=src[0])printf("%08d",src[i]);elseprintf("%d",src[i]);}printf("\n"); } void mul(int *src,int *dec,int d){int res=0;for(int i=1;i<=src[0];i++){dec[i]=src[i]*d;dec[i]+=res;res=dec[i]/DMAX;dec[i]%=DMAX;}dec[0]=src[0];if(res){dec[++dec[0]]=res;} }void add(int *src1,int *src2,int *dec){int res=0;for(int i=1;i<=src1[0]||i<=src2[0];i++){dec[i]=src1[i]+src2[i]+res;res=dec[i]/DMAX;dec[i]=dec[i]%DMAX;}dec[0]=max(src1[0],src2[0]);if(res){dec[++dec[0]]=res;} } void sub(int *src1,int *src2,int *dec){ // out(src1); // printf("-\n"); // out(src2);int res=0;for(int i=1;i<=src1[0]||i<=src2[0];i++){dec[i]=src1[i]-src2[i]-res;if(dec[i]<0){res=1;}else{res=0;}dec[i]=(dec[i]%DMAX+DMAX)%DMAX; // printf("%d %d ",src1[i],src2[i]); // printf("%d\n",dec[i]);}dec[0]=max(src1[0],src2[0]);while(dec[dec[0]]==0&&dec[0]>1) {dec[0]--;} }void cti(char *src,int *dec){int len=(int)strlen(src);dec[0]=(len-1)/8+1;int cnt=8-(len-1)%8-1;for(int i=0;i<len;i++){dec[dec[0]-cnt/8]*=10;dec[dec[0]-cnt/8]+=src[i]-'0';cnt++;} }int num[1300]; int tep[1300]; int sum[1300]; int ans[3][1300]; int isl; void solve(char *s,int *ans){SET0(sum);SET0(num);cti(s,num);// if(isl)printf("l:"); // else printf("r:"); // out(num);int seven=0;int len=(int)strlen(s);for(int i=0;i<len;i++){if(s[i]>'6'){SET0(tep);mul(ninepow[len-i-1],tep,s[i]-'0'-1);add(tep,sum,sum);}else if(s[i]=='6'){SET0(tep);mul(ninepow[len-i-1],tep,6);add(tep,sum,sum);seven=1;break;}else{SET0(tep);mul(ninepow[len-i-1],tep,s[i]-'0');add(tep,sum,sum);} // out(sum);}if(seven&&isl==0){sub(sum,ninepow[0],sum);} // printf("sum:"); // out(sum); //sub(num,sum,ans);// printf("ans:"); // out(ans); // printf("\n"); }int main(int argc, const char * argv[]) {ninepow[0][0]=1;ninepow[0][1]=1;for(int i=1;i<MAXN;i++)mul(ninepow[i-1],ninepow[i],9);SET0(ans);scanf("%s%s",l,r);isl=1;solve(l,ans[0]);isl=0;solve(r,ans[1]);sub(ans[1],ans[0],ans[2]);out(ans[2]);return 0; }

?

總結

以上是生活随笔為你收集整理的处女座和小姐姐(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。