【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 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- 【codeforces 707E】Garlands
[题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...
- 【codeforces 707C】Pythagorean Triples
[题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...
- 【codeforces 709D】Recover the String
[题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...
- 【codeforces 709B】Checkpoints
[题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...
- 【codeforces 709C】Letters Cyclic Shift
[题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...
- 【Codeforces 429D】 Tricky Function
[题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...
- 【Codeforces 670C】 Cinema
[题目链接] http://codeforces.com/contest/670/problem/C [算法] 离散化 [代码] #include<bits/stdc++.h> using ...
- 【codeforces 515D】Drazil and Tiles
[题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ...
随机推荐
- 二分查找(c & c++)
typedef int ElemType; C版本号 [递归版本号] int binSearch2(ElemType List[] ,int x,int head,int tail){ //递归版本号 ...
- luogu1064 金明的预算方案
这道题我就想说一点:审题!附件只有2个!钱是10的整数倍,不是100的整数倍! #include <cstdio> #include <cstring> #include &l ...
- 【NOI 2015】 荷马史诗
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4198 [算法] 不难发现,题目中所说的编码方式就是哈夫曼编码 注意合并时优先合并深度 ...
- 第2课 Git配置文件的妙用
2-1 "git config" 指令的用法 文件夹中".git"子文件夹内的config文件的优先权>登录账号的home directory中的.gi ...
- PCB C# 连接MongoDB 数据库
一.C# MongoDB 驱动下载 1.百度网盘:nuget下载地址(V2.7版本) https://pan.baidu.com/s/1VDsVcH1TMrXqhRCZVewZgA 2.VS 中NUg ...
- preg_match_all匹配网络上文件
<?php$ssa=file_get_contents("http://www.oschina.net/code/snippet_4873_5256");preg_match ...
- [Apple开发者帐户帮助]三、创建证书(3)创建企业分发证书
作为Apple Developer Enterprise Program的成员,您可以创建多个企业分发证书. 所需角色:帐户持有人或管理员. 在证书,标识符和配置文件中,从左侧的弹出菜单中选择iOS, ...
- 多线程通信(wait/notify)
线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一.当线程存在通信指挥,系统间的交互性会更强大,在提高CPU利用率的同时就 ...
- netty支持SSL,OpenSSL
import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.handler ...
- 强迫症!一行代码拿到url特定query的值
简单的说一下背景,看到小伙伴给我发的项目中有一段获取当前url特定query值的代码,本着能写1行代码就不写5行代码的原则,我把这个获取方法给改了一下 之前的代码如下: const queryArr ...