????????今天是2024年3月1號,藍橋杯比賽還有一個月的時間,雖說自己不指望拿獎吧,但是還是有些莫i名的焦慮,這道題目都做不出來,感覺自己真的有點菜啊!但是還好啦,我覺得是因為我沒有題感,慢慢來唄,你也是
?題解:
? ? ? ? 首先這道題的意思就是找出重復的數和斷掉的數,那我剛開始就想岔了。想著要不把他放到一個數組里面去,先排個序,還后有重復的存在那就是重復的數,再遍歷一下,缺少的就是斷掉的數,復雜吧,然后看了別人的題解之后,我想著damn it !
? ? ? ? 首先就是這個票據是連續的,所以我們可以直接就用一個數組來存,下標就是票據中的數字,具體的數值那就是存放的次數。然后再遍歷,出現一次且前后都有當下的數為0的那就代表是斷號,出現兩次的那就是重復的數。
Code:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,a[100005],ans1,ans2;
signed main(){cin>>n;while(cin>>x) a[x]++;for(int i=1;i<10004;i++){if(a[i-1]&&a[i+1]&&!a[i]){ans1=i;}if(a[i]>1) ans2=i;if(ans1&&ans2) break;}cout<<ans1<<" "<<ans2<<endl;return 0;
}
感覺自己C++這個語言掌握的不是很熟練,我們倆很陌生,嗯,再處處!你加油哦~