【codeforces 350C】Bombs
【链接】 我是链接,点我呀:)
【题意】
【题解】
会发现在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相关推荐
- 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)
题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...
- 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)
题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...
- 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)
题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...
- 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)
题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...
- 【CodeForces 997C】Sky Full of Stars(组合计数)
题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- 【codeforces 508B】Anton and currency you all know
[题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...
- 【codeforces 711B】Chris and Magic Square
[题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...
- 【codeforces 807C】Success Rate
[题目链接]:http://codeforces.com/contest/807/problem/C [题意] 给你4个数字 x y p q 要求让你求最小的非负整数b; 使得 (x+a)/(y+b) ...
最新文章
- Java项目:在线旅游系统(java+jsp+SSM+Spring+mysql+maven)
- postfix邮箱服务
- cmake 头文件 库文件 路径搜索 CMAKE_INCLUDE_PATH CMAKE_LIBRARY_PATH
- HTML锚点控制,跳转页面后定位到相应位置
- VistaDB 数据库,.NET的新选择
- OSI七层模型详解-开放系统互联参考模型详解
- 服务器显示数据库,显示数据库服务器上的数据库数据库
- VS中PCL库附加依赖项配置
- [angularjs]初学小记1
- mac下workbench轻松搭建(drools 7.11.0.Final版本)
- ulead gif animator_搞笑GIF:家庭聚餐,还有三十多个没来呢?|搞笑gif
- Spring Cloud服务网关 Zuul
- 移动开发或将被颠覆?
- 关于 MySQL 8.0 新特性“隐藏索引”的一点思考
- Fragment+ViewPager+ButterKnife时控件会报空指针问题
- 制定自动化测试实施计划
- 人工智能与安全论坛:智能与安全的融合与对抗
- 浏览器支持H.265解码总结
- 如何在win7旗舰版下运行汇编的debug、masm、link等
- PHP笔记——开发工具VS Code