CodeForces 844A Diversity (超级超级水唯一需要想得就是开个标记数组吧)
2017-10-30 18:50
330 查看
**A. Diversity** time limit per test :1 second memory limit per test: 256 megabytes input: standard input output: standard output
Calculate the minimum number of characters you need to change in the string s, so that it contains at least k different letters, or print that it is impossible.
String s consists only of lowercase Latin letters, and it is allowed to change characters only to lowercase Latin letters too.
Input
First line of input contains string s, consisting only of lowercase Latin letters (1 ≤ |s| ≤ 1000, |s| denotes the length of s).
Second line of input contains integer k (1 ≤ k ≤ 26).
Output
Print single line with a minimum number of necessary changes, or the word «impossible» (without quotes) if it is impossible.
**
**Examples** **input** yandex 6 **output** 0 **input** yahoo 5 **output** 1 **input** google 7 **output** impossible
**
In the first test case string contains 6 different letters, so we don’t need to change anything.
In the second test case string contains 4 different letters: {‘a’, ‘h’, ‘o’, ‘y’}. To get 5 different letters it is necessary to change one occurrence of ‘o’ to some letter, which doesn’t occur in the string, for example, {‘b’}.
In the third test case, it is impossible to make 7 different letters because the length of the string is 6.
题意
就是给你个字符串 然后给你个k代表有不重复的字符 求你要达到这个k 最少需要
思路:
求出字符串长度 如果比k小直接输出 impossible,如果比k大 那就用标记数组来找不重复的最多有多少 如果比k大就输出 0;如果比k小输出k-不重复的字符的个数
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; int flag[2000]; int main() { char s[2000]; int k; cin>>s; memset(flag,0,sizeof(flag)); //数组初始化 cin>>k; int m=strlen(s); if(k>m) { cout<<"impossible"<<endl; return 0; } int ans=0; for(int i=0;i<m;i++) { if(flag[s[i]]==0) //标记数组 { flag[s[i]]=1; ans++; } } if(ans>=k) cout<<0<<endl; else cout<<k-ans<<endl; return 0; }
相关文章推荐
- 利用perl从大量数据中筛选我们我们需要的数据,核心思想就是根据格式的一致性,将每一行利用split转换成数组,然后输出对应的数组
- Java 集合就是比数组好(为什么有了数组还需要集合?)
- 电影《教父》中的老大哥都觉得:一个不花时间陪家人的男人算不得一个好男人。繁花似锦,岁月青葱,人生不过25亿秒,过一秒,少一秒,时间正滴答滴答地蚕食我们,我们唯一需要做的,就是让这些秒钟过得有意思:高效工作,不断的学习充实,陪陪家人联络亲友,爱惜身体养养花草。
- leetcode+平时说的标记数组就是hashtable
- 【牛尔】【小p】这些美容强男的超级秘籍!!!丝般肌肤毛孔看不见,清透小面颊,丝滑小脸蛋儿,你难道不想拥有吗————【收缩毛孔的最佳方法】(一夜之间6万浏览量,大师的感召力和信服力就是强啊!)
- php xml 解析成数组(目前仅支持5级,需要照样添加代码就行)
- javascript数组唯一化实现方式
- DeviceUuidFactory【获取设备唯一标识码的UUID(加密)】【需要运行时权限的处理的配合】
- 巧用 ROW_NUMBER() 生成不重复的唯一排序码,按客户的需要任意排序数据
- 异常检测——无监督、高斯分布模型,需要带标记的样本数据,基本假设:特征符合高斯分布
- 数组与矩阵---需要排序的最短子数组长度
- MPI并行编程传递多维数组需要注意的若干问题
- 怎样把你的肾补起来!(原来我有黑眼圈,皮肤发黄时肾不好啊)!!世界上唯一有能力让时间扭转、青春永在的最强有力的器官,就是肾脏。
- 同余定理:poj2769 Reduced ID Numbers(标记数组)+hdu1021 Fibonacci Again(应用于递推公式)
- 在数组中找出唯一的重复元素
- codeforces_625d(树状数组+离散化)
- iOS 中UUID唯一标记的使用
- 求连续数组中唯一重复的元素
- 数组的长度需要自动变化时的解决办法
- 用循环数组的方式自主配置需要调用的函数