Acm踩过的坑
来源:互联网 发布:中科院软件所青岛 编辑:程序博客网 时间:2024/04/28 05:13
解题思路:
1,思考问题的解决方案的时候,应该先考虑到最笨的方法,然后计算时间复杂度行不行,如果太高,考虑能不能优化。怎么优化呢?一般N在[10000,1000000]的,是nlog(n),再大的,复杂度就该是n了,二分减小复杂度?动态规划减小?记忆化搜索?先排序再搜索?等等各种方案,如果还是想不到好的优化方案,那么,就是这个题目里面有个规律你没有找出来,你要列各种数据,放开脑洞,想各种可能性,通过假定最终解决方案啊,找最终解决方案的特征啊,或者最终解决方案的形成过程中是不是有规律可循啊,是不是问题某个隐含的条件你没有找到啊,总之,如果自己想不到好的优化方案,那么自己能做的就是去找规律,找最终答案的规律,总结最终的答案的特征,是不是有普适性啊,是不是有特殊性啊,不能发愁,如果还是找不到,那么好,果断放弃。
2,想到一个解决方案了后,不要着急写,要放开眼光,用数据证明你的想法是不是对的,而不是代码都写了一半甚至快写完的时候,发现,思路错误,这就坑了,所以,要坑早坑,不要最终才踩坑,五个小时,时间有点紧。。
总结:
- 定义数组的时候,比如int array[3]={0,1,2,3},就算array[0]不用,也不要定义成了int array[3]={1,2,3}
- 认真读题,不是所有的输入输入都明确表明了输入数据的数据类型,不是所有的数都默认是整数,万一输入数据是double就坑了
- 认真读题,如果给出了一个范围,比如给你一个连续的整数,也不一定是从小到大或者从大到小,一定做好判断才行
- Output Limit Exceeded可能是因为没有按照要求读入数据,比如本应是double读数据却用了int,还可能是因为应该用%lld却用了%I64d
- 如果先读整数再读字符串,读完整数后要记得getchar()(或者cin.get())读掉‘\n’,如果读整行字符串可以用gets()(或者getline(cin,string))
- 输出的格式一定看清楚,避免PE,比如有的题目要求输出Case 1:,有的要求两个结果之间有一个空行(或空格)(这和每个结果后是一个空行(或空格)完全不一样!!),有的要求精确到小数点两位,一定不能因为PE扣分!
- strncpy(char *src,char *des,size_t n)不会自己加上‘\0’,所以要记得加上,不然会坑
- 如果题意说是整数,要考虑会不会可能是大整数,不然可能会WA
- !!!读题的时候,一定把临界点想清楚!!!!bug就很可能出在临界点上!!比如HDU1203题,输入数据可能是
0 1
0 0.2
即,有的学校不需要交费用就可以申请!·!!虽然是个简单的背包+简单概率,但是!!找了好久bug啊,坑
- 每一句代码都应该仔细考量,精确到每一个等号或者大于号!
又让数据类型坑了!!!!本来应该用long long却选了int,坑啊,要哭了啊,浪费我五个小时啊!!!
10,memset也占用很多时间,请谨慎使用
0 0
- Acm踩过的坑
- 一个人的ACM(我们一起追过的ACM)
- AekdyCoin出过的ACM题
- 踩过的坑
- 踩过的坑
- 踩过的坑
- 我踩过的听过的那些坑
- appium踩过的坑
- Phonegap踩过的坑
- Phonegap踩过的坑
- appium踩过的坑
- Kendo踩过的坑
- Phonegap踩过的坑
- googleplay踩过的坑
- dispatch_group_t踩过的坑
- ToolBar踩过的坑
- mysql 踩过的坑
- Notification踩过的坑
- linux编程之pipe()函数
- memcache
- 常量指针和指针常量的区别详解
- 《大白书》192页 uva 1329 合作网络
- 拼接html标签
- Acm踩过的坑
- 关于oracle数据库中的建一个主键自增1的表
- linphone 分析3 打电话源码分析
- 关于==和equals的几点见解
- 用leangoo怎么做迭代管理?(Sprint Backlog、任务看板、燃尽图)
- CodeForces 607AChain Reaction
- css初始化
- leetcode题解-1.Two Sum
- C++输入输出流