随笔分类 -  思维

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 23 下一页
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 假设现在每个人收到的信息条数存在cnt里面 那个人猜的条数为target 则如果cnt[i]==target[i] 则我们就让第i个人来就好了。 因为s[i][i]=1恒成立。 所以第i个人它的cnt个数肯定递增了。 因此第i个 阅读全文
posted @ 2018-01-29 15:26 AWCXV 阅读(129) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 m比较小 多重背包。 但每个物品的数量可能很多。 所以加一个二进制优化就好了。 把每个物品的数量转化成二进制。 转换成01背包的问题。 (物品的数目大概在1000 log2(1e6)的样子 然后容量是1000. 这时候就可以做了 阅读全文
posted @ 2018-01-29 11:41 AWCXV 阅读(139) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 做这题之前先要知道二叉排序树的一个性质。 就是它的中序遍历的结果就是这个数组升序排序。 (且每个节点的左边的节点都是比这个节点的值小的,每个节点的右边的节点都是比这个节点的值大的。 则我们把原数组排序。 然后在这里面找到原来数组 阅读全文
posted @ 2018-01-27 12:30 AWCXV 阅读(161) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 n个物品,每个物品都有无限个。 第i个物品的价格是一样都,都是ai 让你从中选出恰好k个物品 问你选出的物品的总价值 有多少种不同的可能。 【题解】 可以用f[j]表示物品的总价值为j最少需要选多少个物品。 for (int i = 1;i 【代码】 c 阅读全文
posted @ 2018-01-26 21:43 AWCXV 阅读(157) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先搞一条a到b的路径 a c x3 x4 x5....xn 2 d b 然后第二个人的路径可以这样 c a x3 x4 x5...xn 2 b d 也即加两条边[a,x3] [xn 2,b] 所以最少只需要n+1条边。 (尽量让 阅读全文
posted @ 2018-01-26 15:52 AWCXV 阅读(123) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 根据题意:先明确以下规则: 1.如果两个点之间没有边,那么这两个点只能是a或c,且不能相同 2.如果两个点之间有边,那么他们之间的差的绝对值 【代码】 cpp include using namespace std; const 阅读全文
posted @ 2018-01-26 12:10 AWCXV 阅读(134) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 最近公共祖先。 (树上倍增 一开始统计出每个子树的节点个数_size[i] 如果x和y相同。 那么直接输出n. 否则求出x和y的最近公共祖先。z (假定y的深度大于x 【1】如果z等于x或y中的一个。 那么久就找到x..y的路径 阅读全文
posted @ 2018-01-25 11:56 AWCXV 阅读(163) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理出起点到任意点的最短路以及最短路条数= dis[0][i],cnt[0][i] 然后 把所有的边反向 处理出在反图上终点到任意点的最短路以及最短路条数= dis[1][i],cnt[1][i] dis数组的初值为 1,表示无 阅读全文
posted @ 2018-01-24 16:29 AWCXV 阅读(195) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 状态压缩动规。 可以写成记忆化搜索的形式。 f[bit][p] 表示选取的菜的情况为bit(用0..2^(N) 1的二进制形式表示各个菜有没有选 然后上一道菜选的是第p道菜,剩下的菜选够m道的话能够获得的最大满意度. 显然这两个 阅读全文
posted @ 2018-01-24 13:05 AWCXV 阅读(131) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 2^y可以由两个2^(y 1)相加得到。 则有一个贪心的策略。 就是2^x尽量都变成2^(x+1) (即能够凑就尽量凑) 如果x还有剩余的话。答案递增1 而凑上去的数字,显然是可以合并成1步操作的。因为他们的和就是2^(x+1) 阅读全文
posted @ 2018-01-24 12:36 AWCXV 阅读(143) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 会发现每个环可以操作的次数是固定的。 (环的大小 1 也就是说一旦环确定了。其实结果就已经确定了。 则直接看操作总数的奇偶性就可以了。 【代码】 cpp include define long long using namesp 阅读全文
posted @ 2018-01-23 12:01 AWCXV 阅读(105) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 对于1操作 令len = r l+1 等价于查找l..r这个范围内 x的倍数的个数 是否大于等于len 1 也即l..r这个范围内 不是x的倍数的个数 小于等于1个 (因为 如果改的话,肯定是把那个数字改成x ,其他n 1个数 阅读全文
posted @ 2018-01-22 16:28 AWCXV 阅读(166) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 记录每个数字出现的次数cnt[x]; (大于1e6的直接忽略) 另外用一个数组z[1e6] 然后for枚举x 第二层for枚举x的倍数(倍数不超过m) 即for (int i = x;i 【代码】 cpp include usi 阅读全文
posted @ 2018-01-22 14:10 AWCXV 阅读(122) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 会发现。 进行一次操作过后。 得到的数字肯定是 【代码】 cpp include define ll long long using namespace std; const int N = 1e3; const ll MOD 阅读全文
posted @ 2018-01-21 04:11 AWCXV 阅读(231) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 最大值出现次数是偶数。 那么就取次大值。 次大值也是偶数? = 再次 因为你绝对不能取偶数个的。 取了对方就总是能面对一个奇数的情况了。 则对面总是能拿走最后一个了。 【代码】 cpp include using namespa 阅读全文
posted @ 2018-01-21 04:05 AWCXV 阅读(267) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 找比n 1大的最小的素数x 1 2,2 3..(n 2) (n 1)长度都为1 然后(n 1) n长度为(x (n 2)) 然后其他边长度都设为x+1就好了。 这样就能满足题意了。 【代码】 cpp include define 阅读全文
posted @ 2018-01-20 09:11 AWCXV 阅读(202) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 找到任意一个环。 然后枚举删掉其中的某一条边即可。 (因为肯定要删掉这个环的,那么方法自然就是删掉其中的某一条边 (其它环,如果都包括这条边,那么就可以,否则,某个环不包括那也没办法,自然就无解了。 这样枚举的边的数目最多是50 阅读全文
posted @ 2018-01-14 09:53 AWCXV 阅读(154) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 //从大到小枚举第i(1..len1)位 //剩余的数字从小到大排序。 //看看组成的数字是不是小于等于b //如果是的话。 //说明第i位就是选这个数字了。 //接下来枚举下一位。 【代码】 cpp include defin 阅读全文
posted @ 2018-01-14 07:22 AWCXV 阅读(227) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 分类在区间里面和左边、右边三种情况。 看看l的左边有没有标签、r的右边有没有标签。 就能做完了。 【代码】 cpp include using namespace std; int n,pos,l,r; int main(){ 阅读全文
posted @ 2018-01-14 07:20 AWCXV 阅读(183) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 结束时间比较早的,就早点开始做。 所以,将n件事情,按照结束时间升序排。 然后对于第i件事情。 尽量把它往左排。 即t+1..t+a[i].q 然后如果发现t+a[i].q 【代码】 cpp include using name 阅读全文
posted @ 2018-01-11 14:24 AWCXV 阅读(142) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 23 下一页