TT数鸭子
題目描述
這一天,TT因為疫情在家憋得難受,在云吸貓一小時后,TT決定去附近自家的山頭游玩。
TT來到一個小湖邊,看到了許多在湖邊嬉戲的鴨子,TT頓生羨慕。此時他發現每一只鴨子都不
一樣,或羽毛不同,或性格不同。TT在腦子里開了一個map<鴨子,整數> tong,把鴨子變成了
一些數字。現在他好奇,有多少只鴨子映射成的數的數位中不同的數字個數小于k。
輸入描述
輸入第一行包含兩個數n,k,表示鴨子的個數和題目要求的k。
接下來一行有n個數, a i a_i ai?,每個數表示鴨子被TT映射之后的值。
輸出描述
輸出一行,一個數,表示滿足題目描述的鴨子的個數。
無行末空格
樣例輸入
樣例輸出
4數據組成
| 1 | n<=1000 | k=10 | 1 0 6 10^6 106 |
| 2 | n<=1000 | k=1 | 1 0 6 10^6 106 |
| 3,4,5 | n<= 1 0 5 10^5 105 | k<=100 | 1 0 9 10^9 109 |
| 6,7,8,9,10 | n<= 1 0 6 10^6 106 | k<= 1 0 6 10^6 106 | 1 0 15 10^{15} 1015 |
思路:
數字中最大可能出現的個數是10;
暴力統計即可。
代碼:
#include <algorithm> #include <cstdio> #include <cstring> using namespace std; int n,k,cnt=0,ans=0,a[10]; char s[20]; //讀數int main() {scanf("%d %d",&n,&k);for(int i=1;i<=n;i++){memset(a,0,sizeof(a)); //每次清零cnt=0; scanf("%s",s);int len =strlen(s);for(int j=0;j<len;j++) {a[s[j]-'0']++; //標記 出現的數}for(int j=0;j<10;j++){if(a[j]) cnt++; //統計出現了幾個不同的數}if(cnt<k) ans++; //統計答案}printf("%d\n",ans);return 0; }總結
- 上一篇: 递归陷入死循环的判断方法与解决措施(ja
- 下一篇: 乔布斯写给妻子的信