HDU-5821 <2016 Multi-University Training 8> Ball (贪心)
来源:互联网 发布:手机淘宝助理在哪里找 编辑:程序博客网 时间:2024/05/23 01:19
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5821
题意:
给定一个初始态的序列: 1 1 2 2 0 以及一个终态的序列:2 2 1 1 0
进行m次区间操作,问是否能将初始态序列转变为终态的序列。
首先可以对初始态序列每个位置的每一个值对关于终态的位置进行标识。
比如序列1 1 2 2 0可以标识为3 4 1 2 5。(即每个元素对应终态的位置)
则问题就转换为将序列3 4 1 2 5转换为终态1 2 3 4 5。
那么对于每次的区间操作,就是将该区间的数进行排序。
再看m次区间排序之后该数列整体能否成为一个有序的数列。
#include <bits/stdc++.h>using namespace std;const int maxn = 1100;int t, n, m;struct node{int val, key;bool operator < (const node &A) const{return key < A.key;}} a[maxn];int b[maxn], vis[maxn];bool check(){for(int i = 1; i <= n; i++){if(vis[b[i]]){vis[b[i]]--;}else{return false;}}return true;}int main(){cin >> t;while(t--){scanf("%d%d", &n, &m);memset(vis, 0, sizeof(vis));for(int i = 1; i <= n; i++){scanf("%d", &a[i].val);a[i].key = 0;vis[a[i].val]++;}for(int i = 1; i <= n; i++){scanf("%d", &b[i]);for(int j = 1; j <= n; j++){if(b[i] == a[j].val && !a[j].key){a[j].key = i;break;}}}while(m--){int l, r;scanf("%d%d", &l, &r);sort(a+l, a+r+1);}if(!check()){puts("No");continue;}bool flag = 0;for(int i = 1; i <= n; i++)if(a[i].val != b[i]){flag = 1;break;}if(flag){puts("No");}else{puts("Yes");}}return 0;}
0 0
- HDU-5821 <2016 Multi-University Training 8> Ball (贪心)
- hdu 5821 Ball(2016 Multi-University Training Contest 8——贪心+排序)
- HDU 5821 Ball 2016 Multi-University Training Contest 8
- hdu 5821 Ball 2016 Multi-University 8
- hdu 5821 2016 Multi-University Training Contest 8 Ball 解题报告
- 贪心 ( HDU 5821 )——2016 Multi-University Training Contest 8 1001
- 2016 Multi-University Training Contest 8 1001 Ball
- hdu 5821 2016 Multi-University Training Contest 8(排序)
- 贪心——Windows10 ( HDU 5802 ) ( 2016 Multi-University Training Contest 6 1010 )
- hdu 5802 Windows 10(2016 Multi-University Training Contest 6——贪心+dfs)
- (HDU 5802)2016 Multi-University Training Contest 6 Windows 10 (贪心)
- 贪心——HDU 5813 ( 2016 Multi-University Training Contest 7 1005 )
- (HDU 5813)2016 Multi-University Training Contest 7 Elegant Construction (贪心、图论)
- hdu 5386 Cover 脑洞 +有点贪心 2015 Multi-University Training Contest 8
- 2016 Multi-University Training
- 2016 Multi-University Training Contest 8 题解
- 2012 2012 Multi-University Training Contest 7 Dragon Ball
- 2012 Multi-University Training Contest 7-1003 hdu4362 Dragon Ball
- C语言实现类workerman的功能
- SQL语句怎么对单个字段去重,并且要显示所有列
- 怎样在 Ubuntu 中修改默认程序
- C++在函数声明时,后面跟个const是什么意思?
- varchar2() 与 nvarchar2() 与 char() 与 nchar()区别与联系
- HDU-5821 <2016 Multi-University Training 8> Ball (贪心)
- android按两次返回键退出程序
- ioS 计算缓存和清除缓存
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
- HDU 1257 最少拦截系统(LIS)
- Java_文件上传与下载(三)
- Python 实现Linux间远程拷贝Scp不用输入密码问题
- H5 压缩图片上传(pc端适用)支持png/jpg格式(其他格式都会转为png)
- 1046: 最小的K个数