poj 1925 各种超时啊
来源:互联网 发布:域名绑定邮箱服务器 编辑:程序博客网 时间:2024/06/05 18:32
今天就这道题,让我总结了一下除算法之外对时间要求过高其他的可能超时的地方:
1、对于数组的初始化太大,比如初始化为10000000,这样容易超时,最好用-1.
2、能用int就别用double,一样的程序我用double来算那个点是否在距离内的时候超时了,用int就AC了,而且速度还很开!
3、对于有些数最好不要开根号,如果比较大小的话就都平方就好了,因为开根号太费时间啦!
4、最好不要有cin,cout,因为对于时间要求紧的题,他们太费时间了,还是用scanf和printf好了!
题目大意:蜘蛛侠为了救自己的女朋友需要从公寓攀岩到塔上,在公寓和塔之间还有很多建筑物,要求求出其最小的吐丝次数就可以到塔的方案!
思路:因为蜘蛛侠的行进时成对称的,所以其转换攀爬点的高度都是一样的,都是公寓的高度,一个建筑物可以覆盖的点的范围求出,然后针对此建筑物进行对覆盖的点进行更新就好啦!起初我是想对建筑物进行更新,然后就是求什么交点最小的啦,然后一些程序就发现各种不会写,然后就又是各种不懂,然后就又借鉴了他人的思路。。。不过也学会了不少的东西的!
#include<iostream>#include<cstdio>#include<string>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<queue>#include<stack>#include<vector>#include<climits>using namespace std; #define rep(i,n) for(i=0; i<(n); i++)#define reph(i,n,m) for(i=(n); i<=(m); i++)//正循环的#define repd(i,n,m) for(i=(n); i>=(m); i--) //负循环的 #define min(a,b) (a)>(b)?(b):(a)#define fab(a) (a)>0?(a):0-(a)#define ll long long#define arc(a) (a)*(a)#define inf 10000000 //最大值的#define exp 0.0000001 //浮点型的#define N 1000010 //记录开的数组int d[N*2];int a[5005],h[5005];double scale[5005];int main(){ int T,n,i,j; scanf("%d",&T); while(T--) { scanf("%d",&n); reph(i,1,n) { scanf("%d%d",&a[i],&h[i]); scale[i]=h[i]*h[i]-(h[i]-h[1])*(h[i]-h[1]); } reph(i,1,a[n]) d[i]=inf; d[a[1]]=0;//apartment的横坐标的 reph(i,2,n) { repd(j,a[i]-1,a[1]) { if(d[j]==inf) continue;// / double gap=(double)(a[i]-j);用double超时了 int gap=(a[i]-j); if(gap*gap>scale[i])//代表i已经覆盖不了那个地方了 break; int k=2*a[i]-j; d[k]=min(d[k],d[j]+1); if(k>=a[n]) d[a[n]]=min(d[j]+1,d[a[n]]); } } if(d[a[n]]==inf) printf("-1\n"); else printf("%d\n",d[a[n]]); } return 0;}
- poj 1925 各种超时啊
- poj 2231 Moo Volume 暴力一定超时啊
- 自己动手实现socket的各种超时控制
- Asp.Net各种超时问题总结
- poj 3450 Corporate Identity 枚举+kmp,话说这家伙给我一顿超时啊!!!!
- POJ 2689 Prime Distance【求不超时】
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- MySQL的各种网络IO超时的用法和实现
- 超时
- 超时
- POJ 2191 各种素数算法
- redis主从同步期间发送的各种命令和各种超时
- poj Eeny Meeny Moo 我用链表暴力超时了!!!
- ()POJ 1503 大整数加分 超时了
- POJ 2406 Power Strings(后缀数组做法超时)
- poj 1459 (一不小心就超时的网络流 + Dinic)
- C语言文件操作解析
- 第五课堂作业
- 开始写博客文章,记录学习的各个方面
- Regex in VIM
- 求从0到n这n+1个整数的十进制表示中出现m的次数, 其中(9>=m>=0)
- poj 1925 各种超时啊
- 琅琊之行
- 4.8
- 堆栈操作之———神奇的代码
- C语言通讯录
- UIImageView常用操作
- perl从键盘上读取输入作为字符串和列表的方法
- 浮点数
- 存储过程学习(一)