摘要:
题目链接:UVA-11361 题意:给定a,b,k。求在a和b之间,有多少数字满足自身是k的倍数,且该数字的各数位和也是k的倍数。 思路:典型的数位dp,需要注意的是各数位和m1的范围,否则无法记忆化,可以熟悉一下数位dp的模板。 代码: 1 #include<cstdio> 2 #include< 阅读全文
摘要:
题目链接:UVA 10883 题意:给定n个数,每相邻两个数取平均数,重复这个过程直到只剩一个数。求最后的数的值。 思路:可以发现答案应该是\(\frac{\sum_{i=0}^{n-1} C_{n-1}^i * d[i]}{2^{n-1}}\)。难点在于n最大值为50000。 所以求解过程中要用l 阅读全文
摘要:
题目链接:Gym - 101081K 题意:给n个箱子,每个箱子有一个重量W和一个承重R,表示它上面能放最多R-W的重量。问最多能把多少箱子堆到一堆。 思路:发现在一堆箱子里,两个箱子交换位置,对其他所有箱子没有影响。 所以我们先构造偏序关系,考虑两个箱子i和j,假设Ri<Rj。 那么我们发现假如R 阅读全文
摘要:
题目链接:UVA-11038 题意为给定n和m,求n和m之间(包含)的所有数包含的0的个数。 思路是,用cal(x)表示小于等于x的数包含的0的个数。则答案为cal(n)-cal(m-1)。 再把求cal(x)转化为求\(\sum_i 在第i位为0的小于x的数的个数 \)。 要求在第i位为0的数的个 阅读全文
摘要:
题目链接:HOJ-1108 题意为给定N和M,找出最小的K,使得K个N组成的数能被M整除。比如对于n=2,m=11,则k=2. 思路是抽屉原理,K个N组成的数modM的值最多只有M个。 具体看代码: 阅读全文
摘要:
题意为给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1。 在一局游戏开始时,会确定一个节点作为根。 当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然后找出这个点到根节点的简单路径,将路径上所有边的权值翻转(即0变成1,1 变成0 )。 当一方无法操作 阅读全文
摘要:
题意是黑板上有n个数\(S_i\)。每次操作可以把其中一个数减1或者将两个数合并为一个数。一个数变为0时,则不能再对其操作。 思路是发现最大的可操作次数为\( \sum S_i\)+(n - 1)。\( \sum S_i\)是把所有数消除需要的操作数。(n-1)表示我们最多可以合并(n-1)次。 同 阅读全文
摘要:
题目链接:UVALive - 3668 题目大意为给定n堆石子,每次的操作是选择三个数i<j<=k,从i中拿一枚石子,在j和k中分别放入一枚石子。不能操作者输。求先手是否能赢,若可以,则输出字典序最小的第一步操作。 思路是把在每个位置上的每颗石子当成一个游戏。 用SG[i]表示在第i堆中的一颗石子的 阅读全文
摘要:
首先一些题目,我们要考虑,能否后手复制对手的操作。比如下面这道题: 不管先手如何操作,我们后手操作之后使得剩下的两个链完全相同。然后复制对手操作即可。 其次一个知识点是威佐夫博弈。 威佐夫博弈简单的说,就是有两堆石子,双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。 阅读全文
摘要:
Nim游戏 Nim游戏定义 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每 阅读全文