codeforces 461div.2

A
standard input/output
1 s, 256 MB
   
B
standard input/output
1 s, 256 MB
   
C
standard input/output
1 s, 256 MB
   
D
standard input/output
1 s, 256 MB
   
E
standard input/output
1 s, 256 MB
   
F
standard input/output
1 s, 256 MB
   

----------

922A

题意:

  给一个原型,每次可以选择克隆原型或者克隆拷贝,克隆原型可以获得一个新的原型和一个拷贝,克隆拷贝可以获得2个拷贝

  给你目标的拷贝数量a和原型数量 b问能否达到

分析:

  如果   b==1而a!=0    No

       b==0而a!=1    No

       b-a+1<0         No

       b-a+1是奇数  No

       其他所有   Yes

----------

922B

题意:

  定义一种三角形,满足两边之和大于第三遍,三边为整数且三边异或为0,求三边小于n的三角形中,满足性质的三角形有多少个

  经过旋转可以重合的三角形不重复计算

分析:

  由于三边异或为零,实际上由异或的性质可知,第三个边的长度必定和两个边异或结果相等

  遍历a,b,判断a^b是否合法即可

---------

922C

题意:

  给n,k,问是否1-k所有数字对n取余的结果是不同的

分析:

  简单尝试发现,满足要求的k很少,直接暴力,基本上所有的k都不会大于2000次循环

  暴力测试即可,用map做vis访问标记,遇见相同的直接跳出

--------

922D

题意:

  给定多个字符串,只包含s,h两个字符,求最大的排列顺序,使得最终的串中,"sh"子串最多

    题目保证.,字符串长度总和小于1e5

分析:

  贪心

  对于任意两个字符串,只需要考虑两个字符串前后顺序即可,字符串自身内部的匹配不影响结果

  根据乘法原理,对于2个串a,b a的s数*b的h数就是{ab},除去自身内部外的匹配数量

  只需要比{ab}和{ba}就可以获得最优排列

  预处理所有子串的s,h数,定义个结构体或者哈希和一个比较函数,sort一下即可

  最终获得答案的时候,维护s的前缀和和答案,如果是s就增加前缀和,否则答案加上前缀和

-------

不发代码了,都很短....

posted @ 2018-02-08 04:32  nervending  阅读(133)  评论(0编辑  收藏  举报