随笔分类 - ACM
摘要:题目链接:P3385 【模板】负环 思路 负环模版题,套一个SPFA板子,判断一下每个节点进入队列的次数,当进入队列的次数大于等于n次时,表示当前节点迭代次数超过了n - 1次,即为存在负环。 代码 #include <bits/stdc++.h> using namespace std; #def
阅读全文
摘要:分组背包是01背包的进阶问题,但是相对于较为简单,主要难在他的衍生问题。 分组背包就是现有n个物品,将这些物品分成若干组,给你一个容量为v的背包,对于每一个组中的物品,你最多只能选择一个,问哪些物品装入背包可以使得在体积总和不超过容量v的情况下,价值总和最大。 递推公式 可以看出分组背包和01背包有
阅读全文
摘要:题目链接:HDU 3590【PP and QQ】 思路 树上删边问题,套个反尼姆博弈。 反尼姆博弈是取走最后一个石子的人输掉游戏,所以需要特判一些特殊情况。 1. 有堆的石子个数都是1,所以堆数为奇数时,先手必败,否则先手必胜 2. 所有堆中存在石子数为非1的堆时,若所有堆的异或和为0则,先手必败,
阅读全文
摘要:题目链接:HDU 2873【Bomb Game】 思路 数据范围较小,直接暴力求所有状态的SG值,然后将棋盘上所有炸弹的对应位置的SG值异或起来就可以得到当前局面的结果。对于相同位置的上有两个炸弹会自动爆炸,本来他们的SG值的异或和就为0,所以可以不用管。 代码 int n, m, vis[N *
阅读全文
摘要:题目链接:HDU 3980【Paint Chain】 思路 第一次操作,无论从哪个珠子开始染色,都会得到相同的长度为n - m的链,然后就是在这条链中取一段长度为m的珠子染色,当这一段珠子在链条中间的时候,就会把链条分成两段,就是一个简单的两段连续珠子的长度的sg值异或一下,求出sg[n - m]的
阅读全文
摘要:题目链接:HDU 2999【Stone Game, Why are you always there?】 思路 由于只能取连续的一段石子,当取出的石子是这段石子的中间一部分时就相当于将一段石子分成两段石子,简单异或一下求SG值就行了 代码 int sg[N], vis[N], a[N]; int n
阅读全文
摘要:比赛链接:Codeforces Round 964 (Div. 4) A 思路 水题 代码 #include <iostream> using namespace std; #define ll long long inline int read(void) { int x = 0, f = 1;
阅读全文
摘要:题目链接:CodeForces 1619D【New Year's Problem】 思路 可以因为最多只能逛n - 1个商店,当n - 1大于等于m的时候,所有朋友都能取最大值,否则至少有两个人要选择相同的商店,所以依次枚举两个人选择同一个商店,其他人选择喜悦值最大的商店。 代码 #include
阅读全文
摘要:题目链接:HDU 4334【Trouble】 思路 哈希+贪心,直接将五个数组分成两个或者三个数组,此时数组相加的时间复杂度为O(n2)或者O(n3),然后双重循环数组e和s1并遍历找出s2中是否有满足题意的元素,这个步骤可以使用二分代替还能降低时间复杂度。 代码 #include <iostrea
阅读全文
摘要:题目链接:CodeForces 1132B【Discounts】 思路 因为使用coupons购买q[i]块巧克力,不需要付最便宜的那块巧克力的钱,所以为了使得优惠最大化,所以可以在使用优惠券的时候购买最贵的p[i]块巧克力,所以计算所有巧克力价格高之和和排序后很快能得到答案。 代码 #includ
阅读全文
摘要:题目链接:CodeForces 1873A【Short Sort】 思路 签到题,因为能交换两个元素的位置,所以只需要判断是否有一个元素在他原来该在的位置上就行。 代码 #include <iostream> #include <cstring> using namespace std; #defi
阅读全文
摘要:题目链接:CodeForces 908B【New Year and Buggy Bot】 思路 简单模拟,用pair数组存下四个方向然后,依次枚举全排列,将每个方向依次映射给0,1,2,3,然后就是跟着String走,遇到障碍或者走出地图就返回false,表示当前方案是错误的,走完String的所有
阅读全文
摘要:题目链接:CodeForces 908C【New Year and Curling】 思路 模拟,考虑到两个圆盘可能出现y值相同且相接的情况,所以在判断当前圆盘的y值时循环的范围从在前圆盘的x值左右浮动2r,依次遍历这个范围内的数组y(存储的是当前已经移动了圆盘中的横坐标为i的圆盘的最大的y值),然
阅读全文

浙公网安备 33010602011771号