题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5821

有n个盒子,每个盒子最多装一个球。

现在进行m次操作,每次操作可以将l到r之间盒子的球任意交换。

问进行上述操作后,是否能变成指定的状态。

将颜色相同的球,尽量靠最终状态近的分配。对于每次操作 按最终序号靠近进行排序。最后检查是否一致就行了。

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

 //#pragma comment(linker, "/STACK:102400000, 102400000")
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cmath>
#include <ctime>
#include <list>
#include <set>
#include <map>
using namespace std;
typedef long long LL;
typedef pair <int, int> P;
const int N = 1e3 + ;
P ball[N];
int a[N], b[N]; int main()
{
int t, n, m;
scanf("%d", &t);
while(t--) {
scanf("%d %d", &n, &m);
for(int i = ; i <= n; ++i) {
scanf("%d", a + i);
ball[i].first = , ball[i].second = a[i];
}
for(int i = ; i <= n; ++i) {
scanf("%d", b + i);
for(int j = ; j <= n; ++j) {
if(!ball[j].first && ball[j].second == b[i]) {
ball[j].first = i; //最终
break;
}
}
}
int l, r;
while(m--) {
scanf("%d %d", &l, &r);
sort(ball + l, ball + r + );
}
bool ok = true;
for(int i = ; i <= n; ++i) {
if(ball[i].first != i) {
ok = false;
break;
}
}
printf("%s\n", ok ? "Yes" : "No");
}
return ;
}

最新文章

  1. Nova PhoneGap框架 第七章 设备事件处理
  2. 文件操作之FileOpenPicker、FileSavePicker和FolderPicker
  3. xml Schema 基础
  4. Mysql分区简述
  5. Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net
  6. P1149 火柴棒等式
  7. tableView 显示区域偏移
  8. 《C++ 标准库》读书笔记 - 第二章 Introduction to C++ and the Standard Library
  9. zookeeper 笔记-ACL
  10. Flask-Moment----探索
  11. CentOS6搭建OpenVPN服务器
  12. 关于读取excel 和 写excel
  13. Java 容器源码分析之ConcurrentHashMap
  14. 七牛云存储上传自有证书开启https访问
  15. 快速掌握Ajax-Ajax基础实例(Ajax返回Json在Java中的实现)
  16. laravel中短信发送验证码的实现方法
  17. less语言特性(二) —— 混合
  18. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历
  19. SpringBoot之mongoTemplate的使用
  20. 我所遭遇过的游戏中间件--Scaleform

热门文章

  1. (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
  2. 10g中HASH GROUP BY引起的临时表空间不足
  3. mysql添加索引
  4. hadoop-初学者写map-reduce程序中容易出现的问题 3
  5. JSTL(fn函数)
  6. 通过DDOS攻击流程图来浅谈如何预防Ddos攻击与防御
  7. Dapper的完整扩展(转)
  8. 【Linux】一个简单的线程创建和同步的例子
  9. XML Schema 简介
  10. nagios监控远程主机服务可能出现的问题