部分题目有难度
A:困难的编码 2/20;
B:贪吃的ZZ恺成 ?/20;
C:小强的球 ?/20;
D:涯涯的字符串 16/20.
A:
{
本题考验输出……好吧,我也不知道它考的是什么
有点花哨的For循环加输出就行了
}
B:
{
本题找到规律,你就赢了
列出数据:
No.1:
n=5
1 2 3 4 5
在可以拿3份的地方取走3份
1 2 0 1 2
在可以拿1份的地方取走1份
0 1 0 0 1
在可以拿1份的地方取走1份
No.2:
n=6
1 2 3 4 5 6
在可以拿3份的地方取走3份
1 2 0 1 2 3
在可以拿2份的地方取走2份
1 0 0 1 0 1
在可以拿1份的地方取走1份
0 0 0 0 0 0
……
发现规律了没,没有的话就再列几个数据找找吧
从上面,我们可以发现每次最优取法是:取m/2份(当最大数为奇数时m=max+1,否则m=max)
当然这也是局部规律
我们再列出多个n及结果来:
n=1 ans=1
n=2 ans=2
n=3 ans=2
n=4 ans=3
n=5 ans=3
n=6 ans=3
n=7 ans=3
n=8 ans=4
n=9 ans=4
n=10 ans=4
……
n=15 ans=4
n=16 ans=5
……
从上面有可以发现
ans为1的有1个,ans为2的有2个,ans为3的有4个,ans为4的有8个……
即ans为1的有2^0个,ans为2的有2^1个,ans为3的有2^2个,ans为4的有2^3个……
既然知道规律就好办了,本人的代码没全AC,就不放上来了
其实是嫌B写得太长了
}
C:
{
这题重点是策略,在这就把其中的策略放出来(我不想打字惹 其他都太简单啦 )
放球策略(贪心策略):
避开放在一端,尽量把球放在中间
eg:RBBR
应该把球放在两个B中间
eg:RBR
应该把球放在其中一个R和B的中间
eg:RYB
应该把球放在RY之间或YB之间
……
所以最好就用 R B Y 各2个球组成 ”R B Y(之后的球放的位置)R B Y“ 阵形
当然,万事难尽欢,我们不一定有足够的球摆出这样的阵形
但是只要尽力而为,我们得出的值也是会尽可能大的
就像 “RB( )BY” or “B( )RY”
}
D:
{
此篇太长了,又开一章,快点开链接查看吧~
https://blog.csdn.net/qq_42780145/article/details/81205699
( 原本想在链接上做手脚的,不过想想还是算了 [皮] )