HDU 4889 Scary Path Finding Algorithm
来源:互联网 发布:ubuntu jira部署 编辑:程序博客网 时间:2024/06/12 22:26
题意:
构造一幅图 使题中给出的程序按该图执行 最终变量doge大于输入的C跳出
思路:
出题人思维简直神了! 实在是膜拜! 借题解的图:
按照图中所画 可以继续向右延伸
为何这样可以?? 为何边权要这么取??
先回答第二个问题:
取负数是为了可以不断的去更新 例如如果走了上面的-4那条边 那么它右边的所有点就又可以再更新一次 这样使更新达到了指数级别 (其实可以把所有的值加上一个值K 不过这个K一定要取好!)
除了负数外我们发现数字都是2的几次幂 如果我们按2进制来考虑的话 目的就是防止了进位对数字的干扰 这就是保证了如果走了-8那条边 那么他右边所有点都一定会更新 (简单说因为不可能比-8还小 为啥 因为没进位啊!) 这就是我为什么说取K值一定要取好 (这点我不确定 因为可能稍微改了一点点由于数字积累都会产生影响结果的进位 不过+-1可以过 但是1000就WA了… 求大神给证明!!!)
回答完第二个问题第一个问题也没什么可说的了 就是因为边权构造的好 使得一个点在被上面的边更新后 右边的点全要更新
代码:
#include<cstdio>int main(){ int i,j; int f[33]={-1}; for(i=1;i<=30;i++) f[i]=f[i-1]*2; while(~scanf("%d",&i)) { puts("99 87"); for(i=1;i<30;i++) { printf("%d %d 0\n",i,i+30); printf("%d %d %d\n",i,i+1,f[29-i]); printf("%d %d %d\n",i+30,i+1,f[30-i]); } } return 0;}
0 0
- hdu 4889 Scary Path Finding Algorithm
- HDU 4889 Scary Path Finding Algorithm
- [HDOJ 4889] Scary Path Finding Algorithm [SPFA]
- hdu4889Scary Path Finding Algorithm【构造】搞坏spfa-slf 2014多校联合
- Hierarchical Path-Finding
- Floyd's cycle-finding algorithm
- hdu 1280 Finding shortest path(最短路+最大流最小割)
- 分级查询(Hierarchical Path-Finding )
- HDU 4353 - Finding Mine
- hdu-4414-Finding crosses
- hdu 4414 Finding crosses
- hdu 4414 Finding crosses
- HDU 4414 Finding crosses
- hdu 4668 Finding string
- HDU 4353 Finding Mine
- HDU 4414 Finding crosses
- HDU 4414 Finding crosses
- hdu 1937 Finding Seats
- 374a
- Piggy-Bank(背包九讲_完全背包)
- 项目组给了我一个接口直接访问是json的数据,我怎么在得到接口中的json数据在页面显示啊!
- 382b
- open vpn 在linux 地下搭建和win7搭建
- HDU 4889 Scary Path Finding Algorithm
- 好大夫王航:长尾开发者应尽快接入百度轻应用
- 拦截导弹
- ORACLE 11gr2 ASM redo log 增加
- Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
- [ACM] POJ 2154 Color (Polya计数优化,欧拉函数)
- JavaScript演示日期(Date)
- 有上下界的网络流
- 383a