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)

分析:
网络流:由于数据规模比较小,先通过搜索匹配男孩和女孩,将其合并。再用网络流将合并点与宠物匹配。
构图如图:
这里写图片描述

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 13孩子偷同学钱怎么办 孩子偷同学的钱怎么办 儿子十四岁了老偷钱怎么办 发现初中生的儿子偷钱怎么办 被亲戚怀疑儿子偷钱怎么办 房门选的太白了怎么办 大厅地砖颜色比墙砖浅怎么办 房屋外墙渗水物业不管怎么办 走丢了怎么办教学反思 托班教案迷路了怎么办 大班安全教案遇到小偷怎么办 小班孩子舞台表演找不到位置怎么办 懂你英语学完了怎么办 小班社会走丢了怎么办 帮小老鼠搬鸡蛋怎么办 小老鼠还能怎么办鸡蛋 中班教案走丢了怎么办 走丢了怎么办可后反思 社会走丢了怎么办教案 孩子一直不吃幼儿园的饭怎么办 大班安全游泳抽筋怎么办反思 汤洒了怎么办教学反思 迷路了怎么办小班详案 大班牙又痛又摇怎么办 大班安全教案着火了怎么办 小班社会生病了怎么办反思 脚扭伤了怎么办的反思 中班安全迷了眼怎么办 15个月的小孩长泡疹怎么办 墨盒加错颜色墨水怎么办 墨盒颜色加错了怎么办 uV打印有色差是怎么办 cmyk和rgb有色差怎么办 染头发新长出来怎么办 白色衣服弄上口红怎么办 口红弄到牛仔裤上怎么办 口红弄到沙发上怎么办 做了拔罐后背疼怎么办 拔罐拔出血水后怎么办 拨了罐浑身疼怎么办 拔完火罐洗澡疼怎么办