AT49 国際情報オリンピック日本代表プログラミングコンテスト (Welcome to IJPC) 题解

Doveqise

2019-05-18 17:34:39

Solution

这个题的翻译有毒吧...先吐槽一下翻译 ## 机翻 ![](https://cdn.luogu.com.cn/upload/pic/58971.png) ## 洛谷翻译 ![](https://cdn.luogu.com.cn/upload/pic/58972.png) emmm(机翻就敢往上交) 求助日语大佬大概理解了题意 就是实现一个replace()函数 (完全不知道这玩意咋judge) emmm AtCoder欢乐多 切入主题 一道字符串问题 就是改字符串 看错题面 #### 不写main函数见祖宗 ## 以下为题解区 字符串模拟题 就是依次寻找该字符串中的'I''J''P''C',如果没有的话就自己改 然后在操作的时候需要一些蜜汁骚操作 例如QJPCIXYZ这样的,你就应该考虑将'Q'改为'I'获得较小的更改数 而不是将"XYZ"改为"JPC" 机房dalao果然强如斯( 细节见代码 ```c++ #include<bits/stdc++.h> using namespace std; int N; char S[1005]; int replace(int N,char *S) { int ans=4; for(int i=0;i<16;i++){ int pos=0,j=0,k=0; while(j<4&&k<N) { pos+=i>>j&1; if(i>>j&1) k=find(S+k,S+N,"IJPC"[j])-S; if(k==N) break; j++;k++; } if(j==4) ans=min(ans,4-pos); } return ans; } signed main() { scanf("%d",&N); cin>>S; printf("%d\n",replace(N,S)); return 0; } ```