topcoder SRM 625 DIV2 IncrementingSequence

时间:2022-09-01 10:26:44

由于题目数据量比较小,故可以开辟一个数组存储每个index出现的次数

然后遍历即可

string canItBeDone(int k, vector<int> A){
vector<int> cnt(,);
int n = A.size();
for(int i = ; i < n; ++ i) cnt[A[i]]++;
for(int i = ; i <=n ; ++ i){
if(cnt[i] != ){
cnt[i] -- ;
}else{
bool flag = false;
for(int j = ; j < i; ++ j ){
if(cnt[j] &&(i-j)%k == ){
cnt[j]--;
flag = true;
break;
}
}
if(!flag) return "IMPOSSIBLE";
}
}
return "POSSIBLE";
}

如果数据量比较大,可以考虑用hash_map存储

    string canItBeDone(int k, vector <int> A) {
map<int,int> kmap;
for(int i = ; i < A.size(); ++ i){
if(kmap.find(A[i])!=kmap.end()){
kmap[A[i]]++;
}else{
kmap.insert(make_pair(A[i],));
}
}
for(int i = ; i <= A.size(); ++ i){
if(kmap.find(i)!=kmap.end()){
kmap[i]--;
if(kmap[i] == ) kmap.erase(i);
}else{
bool flag = false;
for(map<int,int>::iterator iter = kmap.begin(); iter!=kmap.end(); iter++){
if((i-iter->first)> &&(i-iter->first)%k ==){
iter->second--;
flag = true;
if(iter->second == ){
kmap.erase(iter);
}
break;
}
}
if(!flag) return "IMPOSSIBLE";
}
}
return "POSSIBLE";
}

topcoder SRM 625 DIV2 IncrementingSequence的更多相关文章

  1. topcoder SRM 625 DIV2 AddMultiply

    由于题目告诉肯定至少存在一种解, 故只需要根据条件遍历一下, vector <int> makeExpression(int y) { vector<int> res; ; i ...

  2. Topcoder Srm 673 Div2 1000 BearPermutations2

    \(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...

  3. Topcoder Srm 671 Div2 1000 BearDestroysDiv2

    \(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...

  4. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

  5. Topcoder srm 632 div2

    脑洞太大,简单东西就是想复杂,活该一直DIV2; A:水,基本判断A[I]<=A[I-1],ANS++; B:不知道别人怎么做的,我的是100*N*N;没办法想的太多了,忘记是连续的数列 我们枚 ...

  6. TopCoder SRM 625 Incrementing Sequence 题解

    本题就是给出一个数k和一个数组,包含N个元素,通过每次添加�数组中的一个数的操作,最后须要得到1 - N的一个序列,不用排序. 能够从暴力法入手,然后优化. 这里利用hash表进行优化,终于得到时间效 ...

  7. topcoder SRM 628 DIV2 BracketExpressions

    先用dfs搜索所有的情况,然后判断每种情况是不是括号匹配 #include <vector> #include <string> #include <list> # ...

  8. topcoder SRM 628 DIV2 BishopMove

    题目比较简单. 注意看测试用例2,给的提示 Please note that this is the largest possible return value: whenever there is ...

  9. Topcoder SRM 683 Div2 B

    贪心的题,从左向右推过去即可 #include <vector> #include <list> #include <map> #include <set&g ...

随机推荐

  1. &lbrack;原创&rsqb;webapp&sol;css3实战,制作一个《炉石传说》宣传页

    在移动网页,尤其是webapp中常需要用到大量的css3动画,来获得良好交互体验 我之前帮朋友做了一个,可惜没帮上忙现在和大家分享一下 目标是要做一个<炉石传说>游戏的介绍宣传页面,文字内 ...

  2. MooseFs-分布式文件系统系列(三)之MFSclient端的使用

    Web界面监控MFS状态 mfscgiserv 是用python写的一个web服务器,监听端口是9425,必须在master(管理服务器上)上启动 常用的参数如下: | 参数| 作用| |:--| : ...

  3. Open judge C16H&colon;Magical Balls 快速幂&plus;逆元

    C16H:Magical Balls 总时间限制:  1000ms 内存限制:  262144kB 描述 Wenwen has a magical ball. When put on an infin ...

  4. 夺命雷公狗---DEDECMS----28dedecms浏览次数的完成

    在页面里显示每部影视作品的浏览量,显示方法如下所示: 首先我们要在内容模板文件里增加显示区: 然后到后保存下文章页的内容页的模版,然后去看下对我们的样式有没有什么影响: 看到这里我们就已经成功一点点噢 ...

  5. Linux中文显示乱码解决

    输入 echo $LANG可以查看当前使用的系统语言 查看是否有中文语言包可以在终端输入 locale命令,如有zh cn 表示已经安装了中文语言 没有则 yum groupinstall chine ...

  6. Uva&lowbar;11462 GCD - Extreme &lpar;II&rpar;

    题目链接 题意: 给定一个n, 求:GCD(1, 2) + GCD(1, 3) + GCD(2, 3) + …… + GCD(1, n) + GCD(2, n) + …… + GCD(n-1, n); ...

  7. JavaScript之获取节点

    JavaScriopt DOM有三大节点:元素节点.属性节点.文本节点. 其中获取元素节点的三种主要方法有: 1.document.getElementById();此方法根据节点的唯一id值获取节点 ...

  8. &lpar;转&rpar;如何阅读OpenStack源码

    1 关于该项目 本项目使用在线绘图工具web sequencediagrams完成,目标是图形化OpenStack的所有操作流程,通过操作序列图能快速学习Openstack的工作原理,理清各个组件的关 ...

  9. 切换了webview 定位不了的解决方法 &lpar;还没有试,记录在此&rpar;

    # 切换到 webview time.sleep(2) print(driver.contexts) driver.switch_to.context('WEBVIEW_com.tencent.mm: ...

  10. c&num;复习提纲

    c#零碎整理 注:本文中大部分图片来自老师的PPT,感谢邵老师!文中所有内容为自己按照PPT整理,欢迎指正! 标识符 标识符(类名.变量名.方法名.表空间名等) 大小写敏感 正则表达式  小括号(组合 ...