蓝桥杯杂题
藍橋杯雜題
- 開始聊天吧
- 氣球升起
- 度熊所居住
開始聊天吧
#include<bits/stdc++.h> using namespace std; set<char>S; int main() {string s;while(cin>>s){S.clear();for(auto x:s)//使用x拷貝s字符串 中的每一個字符 {S.insert(x); //將每一個字符插入到集合S中//因為題目要求的是:不同的字母數量//所以使用集合來自動去重 }if(S.size()%2)//s.size() 返回當前set容器中的元素個數 cout<<"CHAT WITH HER"<<endl;else cout<<"IGNORE HIM"<<endl; }return 0;}set,顧名思義是“集合”的意思,在set中元素都是唯一的,而且默認情況下會對元素自動進行升序排列,如果需要集合中的元素允許重復那么可以使用multiset。
1.set容器的常用操作
氣球升起
再次比賽時間!看到氣球漂浮在周圍真是令人興奮。但是要告訴您一個秘密,法官最喜歡的時間是猜測最流行的問題。比賽結束后,他們將對每種顏色的氣球進行計數并找到結果。
今年,他們決定把這份可愛的工作留給您。
輸入值:
輸出量:
對于每種情況,請在一行上打印氣球顏色以解決最常見的問題。 可以保證每個測試用例都有唯一的解決方案。樣本輸入:
5 green red blue red red 3 pink orange pink 0樣本輸出:
red pink代碼:
#include <bits/stdc++.h> using namespace std; map<string,int>mp;//使用哈希表進行存儲 int main() {int n;string ans;//用于存儲最大的字符串int max=0;//用于比較次數的最大值cin>>n;if(n==0)mp.clear();while(n--){string s;cin>>s;mp[s]++;if(mp[s]>max){ans=s;max=mp[s];}}cout<<ans<<endl;}度熊所居住
度熊所居住的 D 國,是一個完全尊重人權的國度。以至于這個國家的所有人命名自己的名字都非常奇怪。 一個人的名字由若干個字符組成,同樣的,這些字符的全排列的結果中的每一個字符串,也都是這個人的名字。 例如,如果一個人名字是 ACM,那么 AMC, CAM, MAC, MCA, 等也都是這個人的名字。 在這個國家中,沒有兩個名字相同的人。度熊想統計這個國家的人口數量,請幫助度熊設計一個程序,用來統計每一個人在之前被統計過多少次。Input:
這里包括一組測試數據,第一行包含一個正整數N,接下來的N 行代表了 N 個名字。 N 不會超過100,000,他們的名字不會超過40位.Output:
對于每輸入的一個人名,輸出一個整數,代表這個人之前被統計了多少次。實例輸入:
5 ACM MAC BBA ACM BAB實例輸出:
0 1 0 2 1代碼:
#include<bits/stdc++.h> using namespace std; map<string,int>mp; vector<int>vec; int main() {int n;string s;cin>>n;while(n--){cin>>s;sort(s.begin(),s.end());vec.push_back(mp[s]);mp[s]++;}vector<int>::iterator iter;//注意迭代器的:: for(iter=vec.begin();iter!=vec.end();iter++){cout<< *iter <<endl;}return 0; }總結
- 上一篇: 20赛季首次小更已至!424阵型上线等实
- 下一篇: 如何在浏览器账中查看网页的HTML源代码