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

【题意】

【题解】

会发现在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;
}

最新文章

  1. 应用Druid监控SQL语句的执行情况
  2. paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结
  3. Gold Coins 分类: POJ 2015-06-10 15:04 16人阅读 评论(0) 收藏
  4. magento数据库备份导入还原
  5. Linq中使用Left Join
  6. 教程-(SQL DBE、ADO连接)+(Firebird火鸟+DbExpress)+(VF DBF数据库)+(DB Paradox)
  7. .net core 2.0学习笔记(四):迁移.net framework 工程到.net core
  8. POJ-2923 Relocation---01背包+状态压缩
  9. python多重继承的钻石问题
  10. pyautogui_pdf内容提取到excel内_3
  11. select语句的高级应用及实例
  12. 深入理解Spring的ImportSelector接口
  13. 快速排序的C++实现
  14. mysql 与sqlser group by
  15. PhoneGap 介绍
  16. 存储库之——MongoDB
  17. java 线程池--ExecutorService
  18. java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
  19. Nginx负载均衡详解
  20. flutter 布局

热门文章

  1. Dubbo实战(一)高速入门
  2. [POI 2008] BLO
  3. HTTP服务端JSON服务端
  4. openStack enscaption
  5. Labeling Balls(拓扑)
  6. JavaScript中变速运动的数学模型构建
  7. Java并发基础知识点详解
  8. NYOJ999 师傅又被妖怪抓走了
  9. office 2010 破解
  10. 三星A3、A5、A7、G7、J5、J7、S6系列等新机型的部分手机解锁 ROOT刷机