2019 年百度之星—初赛一 B题 Game
题意:最开始可以选择任意位置,在一个坐标轴上,依次走到一个区间里面,可以选择走一步两步,求最小步数。
思路:贪心,刚开始合并区间,确定初始位置以及方向。往右走肯定到左端点,往左走先到右端点,判断下个区间的和下下个区间的方向是否一致,一致如果到是奇数,则当偶数处理位置,反之,仍然走到
端点上。wa了很多次,细节没注意好。
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#include<queue>
#define ll long long
using namespace std;
const int N=;
int l[],r[];
int t,n;
struct Node
{
int a,b;
}e[];
int main()
{
scanf("%d",&t);
while(t--)
{
memset(l,,sizeof(l));
memset(r,,sizeof(r));
scanf("%d",&n);
for(int i=;i<n;i++)
{
scanf("%d%d",&e[i].a,&e[i].b);
}
int ans=;
l[]=e[].a;
r[]=e[].b;
int j=;
for(int i=;i<n;i++)
{
if(e[i].a>=r[j]||e[i].b<=l[j])
{
j++;
l[j]=e[i].a;
r[j]=e[i].b;
}
else if(e[i].a>l[j]&&e[i].b<r[j])
{
l[j]=e[i].a;
r[j]=e[i].b;
}
else if(e[i].a>l[j]&&e[i].b>r[j]&&e[i].a<r[j])
{
l[j]=e[i].a;
}
else if(e[i].a<l[j]&&e[i].b>l[j]&&e[i].b<r[j])
{
r[j]=e[i].b;
}
}
int s;
if(l[]>r[])
{
s=r[];
}
else
{
s=l[];
}
int tmp;
for(int i=;i<=j;i++)
{
if(r[i]<l[i-])
{
tmp=s-r[i];
s=r[i];
if(tmp%&&l[i]<s&&i+<=j&&r[i+]<l[i])
{
tmp++;
s--;
}
}
else if(l[i]>r[i-])
{
tmp=l[i]-s;
s=l[i];
if(tmp%&&r[i]>s&&i+<=j&&l[i+]>r[i])
{
tmp++;
s++;
}
}
if(tmp%)
ans+=tmp/+;
else
ans+=tmp/;
}
printf("%d\n",ans);
}
return ;
}
2019 年百度之星—初赛一 B题 Game的更多相关文章
- 2019 年百度之星 初赛一 1002 Game
传送门 Problem Description 度度熊在玩一个好玩的游戏.游戏的主人公站在一根数轴上,他可以在数轴上任意移动,对于每次移动,他可以选择往左或往右走一格或两格.现在他要依次完成 n 个任 ...
- 2018 百度之星 初赛 第六题 HDU6349
三原色图 Accepts: 281 Submissions: 1261 Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 262144/ ...
- 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=6670 Mindis Time Limit: 4000/2000 MS (Java/Others) M ...
- 2019 年百度之星·程序设计大赛 - 初赛一Game HDU 6669 (实现,贪心)
Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- 2019 年百度之星·程序设计大赛 - 初赛四 1001 Strassen
比赛链接:2019 年百度之星·程序设计大赛 - 初赛四 题目链接:HDU-6719 Strassen C++ 没写出来 于是直接上 Java 暴力. 好像可以用 __int128. import j ...
- 2016百度之星 初赛2A ABEF
只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...
- HDU 5690:2016"百度之星" - 初赛 All X
原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others) Mem ...
- 2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 【百度之星初赛A】路径交 LCA+线段树
[百度之星初赛A]路径交 Problem Description 给定一棵n个点的树,以及m条路径,每次询问第L条到第R条路径的交集部分的长度(如果一条边同时出现在2条路径上,那么它属于路径的交集). ...
随机推荐
- javascript 跳出循环比较
for continue 跳出当前循环,继续下一个循环 break 结束循环 forEach 不能使用continue , break return/return false 跳出当前循环,在forE ...
- Leaflet
https://leafletjs.com/ https://github.com/Leaflet/Leaflet
- 【ABAP系列】SAP ABAP实现发送外部邮件(添加附件)功能
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP实现发送外部邮件(添 ...
- unity不规则按钮解决方案
一种是alpha检测 一种是设置collider 参考: https://zhuanlan.zhihu.com/p/34204396 下面给出第二种方案代码 ///按钮多边形点击方案,注意Canvas ...
- C# 保留N位小数
1.只要求保留N位不四舍五入 float f = 0.55555f; int i =(int)(f * 100); f = (float)(i*1.0) ...
- MVC Html.AntiForgeryToken(); 防止跨站伪造请求(建议所有表单提交都加这个)
视图页面from表单中添加 @Html.AntiForgeryToken(); 然后每个表单提交的时候都会带__RequestVerificationToken 字段 后端控制器验证时添加 [Val ...
- Linq查询语法(2)
转:http://www.cnblogs.com/knowledgesea/p/3897665.html 1.简单linq查询 var ss = from r in db.Am_recProSchem ...
- python基础-6.1 match search findall group(s) 区别
import re # match findall经常用 # re.match() #从开头匹配,没有匹配到对象就返回NONE # re.search() #浏览全部字符,匹配第一个符合规则的字符串 ...
- jsp:include 通过变量作为路径动态引入
语法:<jsp:include page="<%=整体是个变量%>" flush="true"/> 示例: <%@ page la ...
- mysql自动备份脚本
linux系统mysql5.6版本实现自动备份步骤 1.sudo mysql --help | grep my.cnf 查找my.cnf文件2.在文件中添加如下行实现免输入密码[mysqldump]u ...