2016acmicpc大连

A.Wrestling Match(170/486)
题意:有n个人,m场比赛,已知x个是好人,y个坏人,其他人不确定,知道的只是m场比赛必是好人和坏人比赛,问你能否找到一种符合每个人的身份的方案

解:读完题能感觉到是一个二分图,m条边建立二分图,用染色法就能确定是否成立
有一些细节,比如,某些点不连通,整个图每个点不确定,就选一个点随便上色DFS一遍

B.Regular Number(23/182)
题意:一个长度为N的特殊模式串(1 <= N <= 1000),模式串每个位置都是一个集合,表示这个位置可以是集合中的任意一个字符,一个长度不超过5 * 10^6的主串,输出在主串中匹配成功的每个子串

解:把这个特殊模式串拆解开,有10^1000个模式串,数量太大无论怎么做肯定都是不行的
那么只能将这些集合通过某些方式合并处理,所以就友谊个shiftand算法,通过bitset,b[i]表示(i+’0’)这个字符在模式串的哪些位置可以出现,1表示可以出现,0表示不行出现,我们通过一个bitset p记录情况,初始为0,每次把ans总体向高位移一位,再和b[s[i]-‘0’]进行与操作,完成操作后,如果p[j]=1,表示模式串1..j前缀和主串now-j+1…now匹配,所以只需要每次判断p[n-1]是否为1即可,时间复杂度O(nm/64)

C.Game of Taking Stones(14/97)
题意:有2堆石头(10^100),两种取法:1.在某一堆取任意个(不为0)2.在两堆取相同个数,先取完者获胜,问先手输赢情况

解:这题就是一个很简单的威佐夫博弈,唯一的难点在于石头数量太大
威佐夫博弈
设石子少的那堆数量为m,多的为n
(int)((n-m)*(1+sqrt(5))/2.0)==m后手胜
否则先手胜
用JAVA,把根号5通过手写二分计算到小数点后100多位,然后计算就行
!!!看来要去学一波JAVA了。。。

D.A Simple Math Problem(181/531)
题意: 输入两个数a(1≤a≤2*10^4),b(1≤b≤10^9),要求找出满足
1.x+y=a
2.lcm(x,y)=b
符合条件的x和y
可以发现gcd(x,y)=gcd(a,b)
设k=gcd(a,b)
x’=x/k;y’=y/k;
1.(x’+y’)*k=a 2.x’*y’*k=b
将1带入2,可以求出x’,韦达定理判断一下存在性
这样x,y就求出来了

E.Aninteresting game(29/137)
题意:我们做一个游戏,将1.2.3….n递增的顺序加入一些集合
当我们加入i时,我们必须新建一个集合,把i放进去,与此同时把【i-lowbit(i)+1,i-1】从原来的集合放到这个新集合中,这个过程需要消耗力量,在加入了n个数后,有q次询问
1 L R:询问加入【L,R】之后的消耗
2 x:一共有多少次操作需要把x放进一些集合
n≤10^18,q≤10^5

解:在纸上画画找规律的题= =,运用到树状数组的性质

F.Detachment(149/434)
题意:
In a highly developed alien society, the habitats are almost infinite dimensional space.
In the history of this planet,there is an old puzzle.
You have a line segment with x units’ length representing one dimension.The line segment can be split into a number of small line segments: a1,a2, … (x= a1+a2+…) assigned to different dimensions. And then, the multidimensional space has been established. Now there are two requirements for this space:
1.Two different small line segments cannot be equal ( ai≠aj when i≠j).
2.Make this multidimensional space size s as large as possible (s= a1∗a2*…).Note that it allows to keep one dimension.That’s to say, the number of ai can be only one.
Now can you solve this question and find the maximum size of the space?(For the final number is too large,your answer will be modulo 10^9+7)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值