半仙玩魔术游戏怎么玩
1、考虑发现如果把顺序考虑的话,会发现如果把区间分成两半,那么前一半的当前位上一定都是0,后面一定是1,且以后的位上前后一一对应且相同。然后可以想到分治,大概会分为三种情况。直接先预处理出分解成两个质数的和,然后直接暴力枚举拆成了哪两个数就行了。
2、我们可以直接设表示第层用了种颜色的方案数,再设表示长度为的序列用了中颜色的方案数。大概可以理解一下,但是这样需要用,其实我们可以把组合数换成阶乘,然后就可以直接做了。其实这道题的的做法很好想,但是我们可以单独对于每个人考虑,断环复制双倍,直接单调队列搞就行。这道题当时一眼网络流,然后就偏离正解了。
3、一个板必须选择中心和四周的恰好3个。你会发现如果两块板有两个公共点,那么只有一种方案,否则有多种方案。我们可以把一块板所临的4个点用并查集连起来,并且维护里面的最小值。方法一:单点查询,区间加等差数列,可以维护差分数组来解决,直接树剖就完了。
4、方法二:拆式子后发现可以树状数组维护差分,而且序的优秀性质,可以直接区间加。类似于连续攻击游戏,我们直接建图,这样如果是个环,那么都能选,否则,一定有一个点不能选。然后直接双指针跑就行了。其实这道题一些简单的结论很好找,比如++是个定值,+是个定值。
5、其实这道题相当与一个取模操作。这道题可以感性的知道概率越小应该猜的次数越多,但是我们并不知道具体的猜法。秉承着概率题要设状态转移方程的理念,我们可以设表示小于等于轮就全猜中的概率,设表示小于等于轮这个人被猜中的概率。
半仙玩魔术游戏怎么玩
1、显然每次只会有一个变,我们只要找到变化哪一个对结果更优就行了。因为收缩的非常快,所以大概模拟万次就可以了。
2、与货车运输基本一样,但是我却没有看出来。关键在于它一定会走最小生成树上的边,然后倍增即可。这道题显然也是一个可持久化并查集的板子,但是我并没有写出来。
3、如果看对题的话,不难想到答案的形式是把串分成两份,一份是前缀,一份是后缀,然后我们就可以用组合数计算一下,但是这样显然会重复,然后我们可以强制去重,规定移走的那一位不能放原来的字符,这样就不重了。这道题其实是把欧拉路的板子题加了一层包装,然后我就没看出来。关键在于建模,建完后直接跑板子就可以了,我们可以把每种字符当作点,对于一个单词,我们从到连一条有向边,然后只要保证每条边有且仅能经过一次就行了。
4、这道题关键点在于转变思路,不是去暴力更新,而是在查询的时候判断求两点之间的距离和时间差来判断是否已经被传染。然后就可以水到90分了,本来正解很麻烦,但是在暴力的基础上优化一下就可以过,而且复杂度基本上也是对的,具体优化思路是当一个点要被加入的无视序列时,如果它已经可以被其他点无视了,我们就可以不加入了,这样就保证了序列里的元素最少。
5、这道题在考场上看到时表示没有任何想法,可能还是自己的思维方式有问题吧。一些很显然的性质很好推,比如怎样是无解的。然后我们会发现如果把最后一个0放到最开始,相当于把所有1往后移一位,这样可能会更优,所以我们可以一直进行这种操作直到合法为止,启发我们要把他们当作一个整体,但是这样显然不可能过,然后我们就可以用后缀和搞一搞,大概就可以了,因为关键点不再这里,所以就不写了开启树形背包的好题。