151027的测试总结
2015-10-27 16:42
183 查看
第一题
【题目及题号】assess
【题解】
水题一道,不停地gets,然后转string排个序。
【考试ING】
因为傻逼了,忘记开大数组,要被逼刷傻逼题了。
第二题
【题目及题号】route
【题解】
本题要求根据时间对多条线段求交。
我的做法是对于任意两个人,求一个都在运动的时间区间。
如果区间始末他们交换了相对位置则ans++;
【考试ING】
特判掉了区间不存在的情况。
第三题
【题目及题号】work
【题解】
本题转化一下实际就是对于每个j人求sigma(t[i]) t[i]>d[j],且满足sigma(t[i])>r[i];最小化i
nlogn的做法,把人和t都排成降序,对于每个人,把大于它的t丢进线段树求和,然后找找第k大表示答案。
【考试ING】
以为可以主席树做,想想好麻烦,不写了。最后暴力40分,主席树50分。【没有什么区别嘛
然后下来写标算的时候,发现了一个很可怕的错误。
如果按照第一种写法,当j因为大于m而退出时,k无法被更新,若此时i还未到n,下一次就会再从k算一遍。
是错的!!!然而交codeforces居然1a……这不科学。
WRONG
RIGHT
【题目及题号】assess
【题解】
水题一道,不停地gets,然后转string排个序。
【考试ING】
因为傻逼了,忘记开大数组,要被逼刷傻逼题了。
第二题
【题目及题号】route
【题解】
本题要求根据时间对多条线段求交。
我的做法是对于任意两个人,求一个都在运动的时间区间。
如果区间始末他们交换了相对位置则ans++;
【考试ING】
特判掉了区间不存在的情况。
第三题
【题目及题号】work
【题解】
本题转化一下实际就是对于每个j人求sigma(t[i]) t[i]>d[j],且满足sigma(t[i])>r[i];最小化i
nlogn的做法,把人和t都排成降序,对于每个人,把大于它的t丢进线段树求和,然后找找第k大表示答案。
【考试ING】
以为可以主席树做,想想好麻烦,不写了。最后暴力40分,主席树50分。【没有什么区别嘛
然后下来写标算的时候,发现了一个很可怕的错误。
如果按照第一种写法,当j因为大于m而退出时,k无法被更新,若此时i还未到n,下一次就会再从k算一遍。
是错的!!!然而交codeforces居然1a……这不科学。
WRONG
int k = 1; for(int i=1;i<=n;i++){ for(int j = k;j<=m;j++){ if(tt[j].t>=pp[i].dd){ num = tt[j].t; aim = tt[j].pos; insert(1,1,m); } else{ k = j; break; } } tmpp = pp[i].rr; cs = pp[i].dd; now = pp[i].po; if(T[1].sum>=pp[i].rr+T[1].tim*pp[i].dd) ask(1,1,m); }
RIGHT
int k = 1,j; for(int i=1;i<=n;i++){ for(j = k;j<=m;j++){ if(tt[j].t>=pp[i].dd){ num = tt[j].t; aim = tt[j].pos; insert(1,1,m); } else{ k = j; break; } } k = j; tmpp = pp[i].rr; cs = pp[i].dd; now = pp[i].po; if(T[1].sum>=pp[i].rr+T[1].tim*pp[i].dd) ask(1,1,m); }
相关文章推荐
- AT指令常见ERROR错误代码对应问题
- 经典SQL语句
- Android判断网络是否连接
- [Leetcode]Graph Valid Tree
- 泛型?、K、V、T、E
- python学习手册:字典,方法
- 卸载pythonwin&python
- AT指令常见ERROR错误代码对应问题
- 第9周—项目3(1)建立稀疏矩阵三元组表示的算法库
- lldb调试到ios的main函数
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第七课)UIToolbar、iPad 和iPhone的通用程序
- 文件重定向
- 029.Polymorphism 多态
- Mac下获取App Store安装包临时存放路径
- NO.159 集成禅道和git
- xib 中设置 label View 等圆角
- 实现最大最小堆
- static与const的区别
- erlang的启动参数设置。
- 杭电3617Happy 2009