2016.8.10测试总结
来源:互联网 发布:黄软件什么最好 编辑:程序博客网 时间:2024/04/30 00:23
第一题:
题意:平面上有N条直线,用方程Ax+By+C=0表示。这些直线没有三线共点的,要求计算出用这些直线可以构造出多少三角形?(1 ≤ N≤ 300000,直线方程的系数不超过10^9。)
分析:
计算斜率K=-A/B,只要斜率不同则会相交。三条能两两相交的直线,就能构成一个三角形。
一共有三种情况:
1、两条平行直线+一条斜率不同的直线:k1
2、三条平行直线:k2
3、三条不同直线:k3
所有情况 k总=C(3,n) 组合数
显然 k总=k1+k2+k3 (k3即为答案)
第二题:
题意:编号为1-n、一共n种物品,价格分别为c1、c2…cn。有m种合成物品的方式(ai,xi,yi),表示yi与xi可以合成ai,其中三个物品各不相同。求得到物品1的最小花费。(0<=ci<=10^9,n<=10000,m<=100000)
分析:
转化为最短路问题。每种合成方式为一条边,通过松弛操作更新物品的最低花费。方法:从一开始就需要更新的物品开始,做最短路。
第三题:
题意:给出N个字符串,分别求出num数组。要求输出(num[i]+1)的乘积,对 1,000,000,007 取模。(n ≤ 5, Len ≤ 1,000,000)
num[i]表示对于字符串S的前i 个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠的字符串数量。例如S=”aaaa” num[]={0,1,1,2}
分析:
用扩展KMP,得出每一个后缀与本串的最多匹配next[i]。如果next[i]>=i,则有重叠,此时只能取next[i]=i。显然,字符串最远位置R=next[i]+i-1,最近L=i。区间(L,R)里的num[i]值都加1。
如何快速实现+1操作?在a[L]+1 a[R+1]-1。a[1]+a[2]…+a[i]=num[i]
第四题:
题意:G个女孩,B个男孩,P个宠物。FreeOpen系统认为,如果一个女孩和一个男孩彼此喜欢,当他们与他们喜欢同样的宠物生活在一起他们会很高兴。系统想知道最大匹配。每个匹配由一个女孩,一个男孩和一个宠物,并且每一个女孩,男孩和宠物只能在一个匹配中。(0 < G,B,P <= 20 ,0 < G+B+P <= 60)
分析:
网络流:由于数据规模比较小,先通过搜索匹配男孩和女孩,将其合并。再用网络流将合并点与宠物匹配。
构图如图:
- 2016.8.10测试总结
- Spring学习总结10(测试)
- 测试总结
- 测试总结
- 测试总结
- 测试总结
- 测试总结
- 总结测试
- 测试总结
- 测试总结
- 测试总结
- 测试基础---测试总结
- 2016.8.4 开营测试总结
- 10-29随堂测试总结
- 【系统测试】性能测试总结
- 性能测试总结---测试流程
- 2016/3/10个人总结:当前测试产品(DB)测试用例设计编写总结
- 【总结】软件测试基础总结
- CodeForces 589A Email Aliases
- 编程学习
- 算法第四版_第二章_练习题_2.1.1~2.1.12
- java list去重操作实现方式
- PulltoRefresh上拉下拉刷新
- 2016.8.10测试总结
- 数据结构之最小生成树
- hdoj-1051
- Go语言环境配置
- Java中List与Map初始化的一些写法分享
- HashTable中的线程同步
- OPENCV入门教程十六:morphologyEx形态学开运算
- java实现将结果集封装到List中的方法
- 树的子结构