HDU-1030 Delta-wave ,暴力贪心!
题意:用图中所示的数字填满这个三角形,求n到m的最短路径,也就是最少通过几条边。
思路:简单贪心就可以了,本人是先将每一层的左右端点用结构体存起来,然后分奇偶判断。
这题必须理清思路才更省时间,二分、搜索都试过,没有什么结果,突然发现当前点正对的另一层的点可以用来判断终点方向。
被以前做的一个题误导了一下,其实理清思路10分钟就可以写出来,结果近一小时左调右调,删了再写写了又删,,,结局悲惨。。。
const int N=1e6+10;
struct node
{
ll l,r;
} a[N];
int n,m,mi;
void init()
{
a[1].l=a[1].r=1;
ll l=1,r=1;
for(int i=2;; i++)
{
l=r+1,r=l+2*(i-1);
a[i].l=l,a[i].r=r;
if(l>1e9) break;
}
}
int main()
{
init();
while(~scanf("%d%d",&n,&m))
{
if(n==m)
{
puts("0");
continue;
}
if(n>m) swap(n,m);
ll k1=1,k2=1;
for(int i=1;; i++)
if(n>=a[i].l&&n<=a[i].r)
{
k1=ll(i);
break;
}
for(int i=1;; i++)
if(m>=a[i].l&&m<=a[i].r)
{
k2=ll(i);
break;
}
// printf("%I64d %I64d\n",k1,k2);
int ans=0;
while(1)
{
if(k1==k2)
{
ans+=abs(n-m);
break;
}
ll tmp=n+(k1+k2-1)*(k2-k1);//正下方
if(k1&1)
{
if(n&1)//奇数
n=n+k1*2,k1++;
else//偶数
{
if(tmp<m) n++;
else n--;
}
}
else
{
if(n&1)//奇数
{
if(tmp<m) n++;
else n--;
}
else//偶数
n=n+k1*2,k1++;
}
// printf("%d %d\n",n,k1);
ans++;
}
printf("%d\n",ans);
}
return 0;
}
HDU-1030 Delta-wave ,暴力贪心!的更多相关文章
- hdu 3697 Selecting courses (暴力+贪心)
Selecting courses Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 62768/32768 K (Java/Others ...
- HDU 3723 Delta Wave (高精度+calelan数)
题意:给定一个图,问你只能向上向下,或者平着走,有多少种方法可以走到最后一个格. 析:首先先考虑,如果没有平的情况就是calelan数了,现在有平的情况,那么就枚举呗,因为数很大,所以要用高精度. 答 ...
- hdu 4825 Xor Sum(trie+贪心)
hdu 4825 Xor Sum(trie+贪心) 刚刚补了前天的CF的D题再做这题感觉轻松了许多.简直一个模子啊...跑树上异或x最大值.贪心地让某位的值与x对应位的值不同即可. #include ...
- uva 1478 - Delta Wave(递推+大数+卡特兰数+组合数学)
option=com_onlinejudge&Itemid=8&category=471&page=show_problem&problem=4224" st ...
- HDU3723 Delta Wave —— 卡特兰数
题目链接:https://vjudge.net/problem/HDU-3723 Delta Wave Time Limit: 6000/3000 MS (Java/Others) Memory ...
- Delta-wave HDU - 1030
Delta-wave HDU - 1030 A triangle field is numbered with successive integers in the way shown on the ...
- Codeforces Round #503 (by SIS, Div. 2) C. Elections (暴力+贪心)
[题目描述] Elections are coming. You know the number of voters and the number of parties — n and m respe ...
- HDU - 6570 - Wave(暴力)
Avin is studying series. A series is called "wave" if the following conditions are satisfi ...
- HDU 3697 Selecting courses(贪心+暴力)(2010 Asia Fuzhou Regional Contest)
Description A new Semester is coming and students are troubling for selecting courses. Students ...
- hdu 1030 Delta-wave (C++, 0ms, explanatory comments.) 分类: hdoj 2015-06-15 12:21 45人阅读 评论(0) 收藏
problem description http://acm.hdu.edu.cn/showproblem.php?pid=1030 #include <cstdio> #include ...
随机推荐
- SQL注入中的整型注入实验
首先搭建一个用于注入的环境 目录结构 conn.php 用来连接数据库的文件PHP文件 index.php 用来执行SQL命令,以及返回查询结构 index.html 一个存 ...
- Does Little'law really applicable to apply performance model now?
上次提到Little定律, 我也解释过它跟另外一个公式有一些内在的关系,但是其实我自己对LL在当前复杂架构系统中到底是怎么应用的也没有完整的想法,于是我在Linkedin上把这个问题抛了出来,没有想到 ...
- 设置windows status bar隐藏
info.plist View controller-based status bar appearance 为 NO CGContextSaveGState: invalid context 0x0 ...
- 你是猴子请来的逗比么!IT跳槽大事件
3月招聘大战早已硝烟四起,互联网职场摇身一变成了跳蚤市场,猎头们告诉跳蚤们,跳不跳不是不问题,往哪儿跳才是重点,跳对了高薪期权都如过眼云烟.不过小编不得不说,劳资最痛恨那些跳槽的人啦!就因为加班 ...
- MINST手写数字识别(二)—— 卷积神经网络(CNN)
今天我们的主角是keras,其简洁性和易用性简直出乎David 9我的预期.大家都知道keras是在TensorFlow上又包装了一层,向简洁易用的深度学习又迈出了坚实的一步. 所以,今天就来带大家写 ...
- div+css实现几种经典布局的详解
一.左右两侧,左侧固定宽度200px,右侧自适应占满 <div class="divBox"> <div class="left">&l ...
- canvas 在视频中的用法
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- MySQL查询当天数据以及大量查询时提升速度
select * from 表名 where to_days(字段名) = to_days(now()) 一.数据库设计方面1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ord ...
- Oracle 回顾
Oracle 函数 日期函数: 1.sysdate--查询当前日期 select sysdate from dual; --查询当前日期 2.months_between--返回两个日期之间的月份差 ...
- java socket domain name 使用域名.
java 的 socket 依赖了 nameService. 引擎模式. 使得 socket tcp 层 具有了上层业务的能力 (应用层) Socket socket=new Socket(&quo ...