HDU5821 Ball 2016多校第八场01

来源:互联网 发布:锐速 原理 知乎 编辑:程序博客网 时间:2024/06/07 09:05

HDU5821 Ball (2016多校第八场01)

题目

大意:给两串序列,不同数字表示不同的球,0表示没有,例如:
1 0 0 0
0 0 0 1
再给定一组区间,例如:
1 3
3 4
依次对区间内球重新放置,问最后能否从第一行变换成第二行序列。

题解

假设有4个红球,初始时从左到右标为1,2,3,4。那么肯定存在一种方案,使得最后结束时红球的顺序没有改变,也是1,2,3,4。 那么就可以把同色球都写成若干个不同色球了。所以现在共有n个颜色互异的球。按照最终情况标上1,2,。。,n的序号,那么贪心的来每次操作就是把一个区间排序就行了。 ——学军中学

其实就是很简单的一个贪心,将A跟B匹配后,给A按照B的顺序重新标号,然后每次按区间对A排序,最后看是否能得到B。
比赛的时候基本没有什么有用的思路,看过的学校越来越多,被卡了,哎,还是思维不够开阔。

代码

#include <iostream>#include <algorithm>using namespace std;int main(){    int T, n, m, a[1006], b[1006], s[1006], i, j, l, r, t;    bool flag;    cin>>T;    while(T--)    {        cin>>n>>m;        flag = 0;        for(i = 1; i <= n; ++i)        {            cin>>a[i];        }        for(i = 1; i <= n; ++i)        {            cin>>t;            for(j = 1; j <= n; ++j)                if(a[j] == t)                {                    a[j] = -1;                    s[j] = i;                    break;                }            if(j>n)                flag = 1;        }        //for(i = 1; i <= n; ++i)        //  cout<<s[i]<<' ';        //cout<<endl;        for(i = 1; i <= m; ++i)        {            cin>>l>>r;            sort(s+l, s+r+1);        }        for(i = 1; i <= n; ++i)            if(s[i] != i)                flag = 1;        if(flag)            cout<<"No"<<endl;        else            cout<<"Yes"<<endl;    }    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 给对方转账到银行卡疑似被骗怎么办 谷歌邮箱收不到邮件了怎么办 我在微信上做兼职被骗了钱怎么办 要是微信里面做兼职被骗了怎么办 在打离婚管斯死亡赔常金怎么办 编辑部回复我文章没有被录用怎么办 父亲死后教师资格被别人顶替怎么办 刚发的论文影响因子变化了怎么办 奥鹏毕业论文过了提交时间了怎么办 手机电池被拿出来后时间不准怎么办 高中的孩子与同学相处不好怎么办 孩子在幼儿园不敢和老师说话怎么办 注册过万方医学网忘了用户名怎么办 狗咬了没破皮没出血有点疼怎么办 狗咬了没出血肿起来了怎么办 广州已经过了幼儿园报名时间怎么办 大专学费没交学校开始查了怎么办 如果申请留学的本科成绩不够怎么办 硕士读了三年无法毕业怎么办啊 孩子在美国读研读不下去怎么办? 在地割草中过失死亡法律^怎么办 高中毕业申请国外大学没录取怎么办 英国研究生老师没给写推荐信怎么办 申请悉尼大学博士奖学金被拒怎么办 硕士延迟毕业但被博士录取怎么办 考完初级职称还是不会做账怎么办 美国留学生在中国办日本签证怎么办 留学雅思过了gpa低怎么办澳洲 护士电子化注册用户名忘记了怎么办 护士电子化注册证书编码错误怎么办 澳洲预科上半学期成绩不达标怎么办 美国大学绩点不够怎么办学习证明 研一想换导师导师不答应怎么办 日本留学在留下来不想去了怎么办 加拿大工签3年到期了怎么办 鞋子穿久了会有臭味怎么办 考研忘了自己填写的通讯地址怎么办 基础教育教师培训网注册错了怎么办 11个月宝宝便秘大便有血怎么办 两岁宝宝两天没拉粑粑了怎么办 两岁宝宝两天没拉大便怎么办