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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[COCI2015]ZGODAN

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [COCI2015]ZGODAN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目大意:
  給你一個數$n(n\leq10^1000)$,定義一個數是“美麗數”當且僅當這個數各個數位上的數奇偶性不同。
  求最接近$n$的“美麗數”,若有多個,則依次輸出。

思路:
  貪心+高精度。
  首先找出$n$的第一個不符合要求的數位,從這一位開始貪心。
  后面幾位要么是'8''9'交替(小于$n$的最大的“美麗數”),要么是'0''1'交替(大于$n$的最小的“美麗數”)。
  然后高精度減法減一下,比較哪個更接近即可。

1 #include<cstdio> 2 #include<cstring> 3 const int LEN=1002; 4 char s[LEN],a[LEN],b[LEN],c[LEN],d[LEN],tmp[LEN]; 5 int len; 6 inline void treat(char s[]) { 7 for(register int i=0;i<len;i++) { 8 s[i]^='0'; 9 } 10 } 11 int main() { 12 gets(s); 13 len=strlen(s); 14 treat(s); 15 a[0]=b[0]=s[0]; 16 for(register int i=1;i<len;i++) { 17 if((s[i-1]&1)^(s[i]&1)) { 18 a[i]=b[i]=s[i]; 19 } else { 20 if(s[i]!=0) { 21 a[i]=s[i]-1; 22 for(register int j=i+1;j<len;j++) { 23 a[j]=a[j-1]&1?8:9; 24 } 25 } 26 if(s[i]!=9) { 27 b[i]=s[i]+1; 28 for(register int j=i+1;j<len;j++) { 29 b[j]=b[j-1]&1?0:1; 30 } 31 } 32 if(s[i]==0) { 33 treat(b); 34 puts(b); 35 return 0; 36 } 37 if(s[i]==9) { 38 treat(a); 39 puts(a); 40 return 0; 41 } 42 for(register int j=len-1;j>=i;j--) { 43 tmp[j]=s[j]; 44 } 45 for(register int j=len-1;j>=i;j--) { 46 if((signed char)tmp[j]<0) { 47 tmp[j]+=10; 48 tmp[j-1]--; 49 } 50 c[j]+=tmp[j]-a[j]; 51 if((signed char)c[j]<0) { 52 c[j]+=10; 53 tmp[j-1]--; 54 } 55 } 56 for(register int j=len-1;j>=i;j--) { 57 tmp[j]=b[j]; 58 } 59 for(register int j=len-1;j>=i;j--) { 60 if((signed char)tmp[j]<0) { 61 tmp[j]+=10; 62 tmp[j-1]--; 63 } 64 d[j]+=tmp[j]-s[j]; 65 if((signed char)d[j]<0) { 66 d[j]+=10; 67 tmp[j-1]--; 68 } 69 } 70 treat(a); 71 treat(b); 72 for(register int j=i;j<len;j++) { 73 if(c[j]<d[j]) { 74 puts(a); 75 return 0; 76 } 77 if(c[j]>d[j]) { 78 puts(b); 79 return 0; 80 } 81 } 82 printf("%s %s\n",a,b); 83 return 0; 84 } 85 } 86 return 0; 87 }

?

轉載于:https://www.cnblogs.com/skylee03/p/8420960.html

總結

以上是生活随笔為你收集整理的[COCI2015]ZGODAN的全部內容,希望文章能夠幫你解決所遇到的問題。

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