【链接】 我是链接,点我呀:)

【题意】

【题解】

会发现在x轴以及y轴上的炸弹,能用较少的操作数除掉。
而其他的点,会发现操作数都是一样的。
那么先把x,y轴上的点都除掉。
其他点。
我们优先沿着横坐标轴移动到和它相同位置。
然后再改变y坐标和目标炸弹一致。
然后就会发现。
x相同的话,要以y坐标的绝对值升序排,要优先处理y的绝对值小的点。
不然可能会出现走的过程中遇到另外一个炸弹的情况。
sort一波+贪心就好。

【代码】

#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
using namespace std; const int N = 1e5; struct abc{
int x,y;
}; int n,cnt;
abc a[N+10]; bool cmp1(abc a,abc b){
return a.y<b.y;
} bool cmp2(abc a,abc b){
return a.x<b.x;
} bool cmp3(abc a,abc b){
if (a.x!=b.x)
return a.x<b.x;
else {
if (a.y<0 && b.y<0){
return a.y>b.y;
}else return a.y<b.y;
}
} int main()
{
scanf("%d",&n);
rep1(i,1,n){
scanf("%d%d",&a[i].x,&a[i].y);
if (a[i].x==0 || a[i].y==0) cnt++;
}
printf("%d\n",cnt*4+(n-cnt)*6); //从下到上排序.
sort(a+1,a+1+n,cmp1);
rep1(i,1,n)
if (a[i].x==0){
if (a[i].y>0){
printf("1 %d U\n",a[i].y);
puts("2");
printf("1 %d D\n",a[i].y);
puts("3");
}
}
rep2(i,n,1)
if (a[i].x==0){
if (a[i].y<0){
printf("1 %d D\n",-a[i].y);
puts("2");
printf("1 %d U\n",-a[i].y);
puts("3");
}
} //从左往右排序
sort(a+1,a+1+n,cmp2);
rep1(i,1,n)
if (a[i].y==0){
if (a[i].x>0){
printf("1 %d R\n",a[i].x);
puts("2");
printf("1 %d L\n",a[i].x);
puts("3");
}
}
rep2(i,n,1)
if (a[i].y==0){
if (a[i].x<0){
printf("1 %d L\n",-a[i].x);
puts("2");
printf("1 %d R\n",-a[i].x);
puts("3");
}
}
sort(a+1,a+1+n,cmp3);
rep1(i,1,n)
if (a[i].x!=0 && a[i].y!=0){
printf("1 %d ",abs(a[i].x));if (a[i].x<0) puts("L");else puts("R");
printf("1 %d ",abs(a[i].y));if (a[i].y<0) puts("D");else puts("U");
puts("2");
printf("1 %d ",abs(a[i].y));if (a[i].y<0) puts("U");else puts("D");
printf("1 %d ",abs(a[i].x));if (a[i].x<0) puts("R");else puts("L");
puts("3");
}
return 0;
}

【codeforces 350C】Bombs的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  3. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  4. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  5. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  6. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  7. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

  8. 【Codeforces 670C】 Cinema

    [题目链接] http://codeforces.com/contest/670/problem/C [算法] 离散化 [代码] #include<bits/stdc++.h> using ...

  9. 【codeforces 515D】Drazil and Tiles

    [题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ...

随机推荐

  1. STL源代码剖析 容器 stl_stack.h

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie stack ---------------------------------------- ...

  2. hdu(1114)——Piggy-Bank(全然背包)

    唔..近期在练基础dp 这道题挺简单的(haha).可是我仅仅想说这里得注意一个细节. 首先题意: 有T组例子,然后给出储蓄罐的起始重量E,结束重量F(也就是当它里面存满了零钱的时候).然后给你一个数 ...

  3. Android Fragment和Activity的交互介绍

    Fragment和Activity的交互 一个Fragment的实例总是和包括它的Activity直接相关. fragment能够通过getActivity() 方法来获得Activity的实例.然后 ...

  4. Codeforces Round #257 (Div. 2/B)/Codeforces450B_Jzzhu and Sequences

    B解题报告 算是规律题吧,,,x y z -x -y -z 注意的是假设数是小于0,要先对负数求模再加模再求模,不能直接加mod,可能还是负数 给我的戳代码跪了,,. #include <ios ...

  5. Android View的onTouch和onClick和onLongClick事件

    这三个事件的调用顺序是: onTouch->onLongClick->onClick 先看这三个事件的处理函数: public boolean onTouch(View v, Motion ...

  6. 生活的 tricks

    1. 远距离传递 传真(需要附近有传真机):发 QQ.微信拍照,自己打印: 2. 超市的设计 如果是两层的话,入口一定在第一楼,出口在第二楼,也即当你需要出去的时候,需要贯穿整个超市: 用的在第一楼: ...

  7. B2568 比特集合 树状数组

    啊啊啊,跳题坑死人.抽了一道国集的题,自己瞎编了一个算法,好像过不了而半途而废.转去看题解,发现用二维树状数组维护一下,偏移量我倒是想对了,但是维护的东西和我的完全不一样.还是有很大差距啊... 题解 ...

  8. 比较两个Json对象是否相等

    一个前端同事遇到的面试题,抽空写了写,也算是个积累 1.先准备三个工具方法,用于判断是否是对象类型,是否是数组,获取对象长度 function isObj(object) { return objec ...

  9. Redis(六)-数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string是redis最 ...

  10. js数据管理的思考

    最近要做一个农场项目,涉及到很多js数据管理的需求,这里也做下总结,不断的总结,再修正内容,也是快速进步的方法. 数据管理几个方面考虑: * 设置(更新)字段值 * 检索,根据id, index, 属 ...