最近口头AC的一些题

  • cf#483c Finite or not?

题意:问p/q在b进制下是否是无限小数?
思路:p/q约分之后q的因子在b中都能被找到

//p q先约分,再加特判
while(1){
  ll d=gcd(q,b);
if(d==1)  为无限小数,break;
  q/=d;b/=d;
 if(q==1)  为有限小数,break;
b=d;//d为公因子,q中剩余的因子属于这个公因子的因子
}
  • cf#483d XOR-pyramid

题意
f(a,b,c,d)的值为其异或所得的值,异或方式如下:

image.png

给序列a,求a序列的最大f值,即a[i]到a[i+k]的f序列值最大。
思路

//区间dp,长度循环在外层
dp[i][len]=dp[i+1][len-1]^dp[i][len-1]
ans[i][len]=max(ans[i][len-1],ans[i+1][len-1],dp[i][len])
  • ArcSoft's Office Rearrangement HDU - 5933 (2016 CCPC Hangzhou Onsite A)

题意:n个数字的序列a,能否通过相邻的两两合并拆分得到k个相同的数字,能则输出最小操作数。
思路:求出平均数,a[i]>average则拆分操作数+1,a[i]

  • Bomb HDU - 5934 (2016 CCPC Hangzhou Onsite B)

题意:给你n个雷的坐标,辐射范围和消耗量,引爆一个雷后在辐射范围内的雷会被它引爆。求引爆所有雷的消耗量。
思路:将能互相引爆的雷强连通缩点,然后引爆所有入度为0的点,求最小消耗和。

  • Car HDU - 5935 (2016 CCPC Hangzhou Onsite C)

题意:依次给你每个路口的坐标(线性),要求经过每个路口的时间必须为整数,且不能减速,求通过所有路口的最小时间。
思路:从后往前遍历,使得每一段时间尽可能为1,且速度不超过后面的速度。t=x/v向上取整,v当前=x/t 取浮点数。因为其可以极速加速,所以每一段的速度以左端点为准即可。

  • Four Operations HDU-5938 (2016 CCPC Hangzhou Onsite F)

题意:有一个长度[5,20]的string,由数字1-9组成,在其中依次插入+ - * /,求问得到的最大运算结果。
思路:分析可知,减号前面的结果要尽可能大,后面的结果要尽可能小。一定是1位数加上一个高位数,乘一定是1位数乘1位数,除后面尽可能多位。所以只要枚举-的位置即可。

  • Kingdom of Obsession HDU-5943 (2016 CCPC Hangzhou Onsite K)

题意:一个序列(s+1,s+2,……,s+n),如果 x mod y==0,则x能坐在第y个位置上,每个人做的位置不重复,问能否实现要求。
思路:可知,若[n+1,s+n]之间有多个素数则一定不成立,s-n>=1000则必有2个及以上素数存在。否则,就二分图暴力建边求最大匹配。二分图左边是数,右边是他可以做的位置。[s+1,n] 之间就做他本身的位置。

你可能感兴趣的:(最近口头AC的一些题)