P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你,对这个活动非常感兴趣.你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为infinite corridor.一次,你经过这条走廊时注意到在走廊的墙壁上隐藏着nn 个等长的二进制的数字,长度均为mm .你从西向东将这些数字记录了下来,形成一个含有nn 个数的二进制…
题意 题目链接 Sol 神仙题Orz Orz zbq爆搜70.. 考虑"与"和"或"的性质 \(0 \& 0 = 0, 1 \& 0 = 0\) \(0 \mid 1 = 1, 1 \mid 1 = 1\) 也就是说某一个数\(\& 0\)之后不管之前是什么,现在的值变为\(0\) 某一个数\(\mid 1\)之后不管之前的是什么,现在的值变为\(1\) 继续考虑 \(0 \& 1 = 0, 1 \& 1 = 1\) \(0…
https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 http://uoj.ac/problem/384 洛谷的题解已经很把思想过程完备地表达出来了:https://kelin.blog.luogu.org/solution-p4424 感觉比官方题解说的还清楚. 那么问题就是我们到底应该如何实现这个算法呢? 一个直观的想法是把每一位的数全部处理出来,然后…
问题描述 一次小G和小H在玩寻宝游戏,有n个房间排成一列,编号为1,2,...,n,相邻的房间之间都有一道门.其中一部分门上锁(因此需要有对应的钥匙才能开门),其余的门都能直接打开.现在小G告诉了小H每把锁的钥匙在哪个房间里(每把锁有且只有一把钥匙与之对应),并作出p次指示:第i次让小H从第\(S_i\)个房间出发到\(T_i\)个房间里.但是小G有时会故意在指令中放入死路,而小H也不想浪费多余的体力去尝试,于是想事先调查清楚每次的指令是否会存在一条通路. 你是否能为小H作出解答呢? 输入格式…
题目 洛谷 4424 分析 感觉思路比较神仙. 对于按位与和按位或两种运算,显然每一位是独立的,可以分开考虑. 对于某一位,「与 \(0\)」会将这一位变成 \(0\),「或 \(1\)」会将这一位变成 \(1\) ,「与 \(1\)」和「或 \(0\)」不会改变这一位的值.前两种操作会改变这一位的值,而后两种不会.将前两种称为「关键操作」,那么某一位最终的值取决且仅取决于这一位的最后一次「关键操作」是「与 \(0\)」还是「或 \(1\)」.如果是前者或者不存在关键操作,最终的值就是 \(0\…
点此看题面 大致题意: 给你\(n\)个\(m\)位二进制数.每组询问给你一个\(m\)位二进制数,要求你从\(0\)开始,依次对于这\(n\)个数进行\(and\)或\(or\)操作,问有多少种方案能够得到给你的这个二进制数. 找规律 不难想到去对每一位分别讨论. 则根据位运算法则可得: 当你把某一位的数\(and\ 0\),就相当于把这一位数赋值为\(0\). 当你把某一位的数\(or\ 1\),就相当于把这一位数赋值为\(1\). 当你把某一位的数\(and\ 1\)或者\(or\ 0\)…
题意 题目链接 Sol 每当出题人想起他出的HNOI 2018 Day2T3,他都会激动的拍打着轮椅 读题比做题用时长系列... \(f[i][a][b]\)表示从根到\(i\)的路径上,有\(a\)条公路未被翻修,\(b\)条铁路未被翻修 然后xjb转移一下 比较好奇为啥不会MLE.. #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e5 + 10; const LL IN…
题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起点,然后就是一个单调队列的模型了.整理一下我们需要求的东西就是这个 \[n - 1 + \min_{i=1}^n i + (\max_{j=i}^{2n} t[j] - j)\] (\(t[j]\)表示第\(j\)个位置出现的时间,其实\(\max\)的上界应该是\(i + n - 1\)的,但是显…
题目大意: $n(n\le1000)$个$m(m\le5000)$位的二进制数,第$0$个数为$0$.用$\wedge$和$\vee$将这些数连接起来.$q(q\le1000)$次询问,每次给定一个$m$位二进制数$r$,问有多少种连接方案使得结果为$r$. 思路: 参考myy的官方题解: 如果第$i$个数之前的运算符是$\wedge$,则这一位设为$1$,否则为$0$,得到的二进制数记为$x$. 对每一位分别考虑,对于第$i$位,如果第$j$个数是$1$,那么这一位设为$1$,否则为$0$,得…
题面传送门 开始 WA ycx 的遗产(bushi 首先可以将题目转化为图论模型:\(\forall i\) 连边 \(a_i\to i\),然后求图的一个拓扑序 \(b_1,b_2,\dots b_n\) 使得 \(\sum\limits_{i=1}^niw_{b_i}\) 最小.显然如果原图出现环就 \(-1\) 了.否则原图一定是一棵森林. 然后我就在那儿想各种乱搞,包括但不限于 DP.贪心之类,然后都假掉了 我们知道有个东西叫排序不等式,它是说 \(\forall a_1\leq a_2…
题面传送门 神仙虚树题. 首先考虑最 trival 的情况:\(m=n-1\),也就是一棵树的情况.这个我相信刚学树形 \(dp\) 的都能够秒掉罢(确信).直接设 \(dp_{i,0/1}\) 在表示 \(i\) 的子树内选择,\(i\) 选/不选的方案数.转移就 \(dp_{u,0}=\prod\limits_{v\in son_u}(dp_{v,0}+dp_{v,1}),dp_{u,1}=\prod\limits_{v\in son_u}dp_{v,0}\) 即可. 接下来考虑有非树边的情…
洛谷 不知道大家做没做过传球游戏,这一题和传球游戏的转移方程几乎一样. 令\(A\)为\(1\)点,\(E\)为\(5\)点,那么\(f[i][j]\)代表第i步走到j的方案数. \[f[i][j]=f[i−1][j+1]+f[i−1][j−1]\] 因为题中给的是一个环,所以有几种情况. \[if(j==8)~f[i][j]=f[i−1][1]+f[i−1][7]\] \[if(j==1)~f[i][j]=f[i−1][8]+f[i−1][2]\] 还有,因为题中说,到了\(E\)点,就不会再…
题面 洛谷 题解 \(f[i][j]\)表示有i个人参与游戏,从庄家(即1)数j个人获胜的概率是多少 \(f[1][1] = 1\) 这样就可以不用讨论淘汰了哪些人和顺序 枚举选庄家选那张牌, 枚举下一次的庄家 可以得到这次的庄家 然后转移即可 Code #include<bits/stdc++.h> #define LL long long #define RG register using namespace std; template<class T> inline void…
题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级玛丽中的一个场景. ******** ************ ####....#. #..###.....##.... ###.......###### ### ### ........... #...# #...# ##*####### #.#.# #.#.# ####*******###### #.#.# #.#.#…
BZOJ原题链接 洛谷原题链接 我们可以倒着来\(DP\). 设\(f[i][j]\)表示剩余\(i\)个人,从庄家数起第\(j\)个人的胜率,设当前枚举到第\(k\)张牌,该情况下这一轮淘汰的位置为\(x\),则有状态转移方程: \(\qquad\qquad f[i][j] = f[i][j] + \dfrac{f[i - 1][i - x + j]}{m}, (x > j)\) \(\qquad\qquad f[i][j] = f[i][j] + \dfrac{f[i - 1][j - x]…
洛谷 题目就是让我们在DAG中找到一些点,覆盖所有点. 因为是DAG,可以想到tarjan缩一下点.假设我们需要找x个点,那么答案就是(n-x)/n. 我们怎么选点呢? 敏锐的我们很快就能想到,直接选出所有入度为0的点. 但是,当我们发现一个入度为0的点,但是其中元素为1,而它的出边所到的点的入度都>1,则x--. 因为它们可以被别的点更新. code: #include <bits/stdc++.h> using namespace std; const int N=100010; c…
题目链接:https://www.luogu.org/problemnew/show/P1247 题意:nim取石子的题意,多了一个判断先手赢的话,输出先手第一把怎么拿,以及拿完之后每堆还剩多少. 题解:异或和为0直接lose.不为0的话,看res xor a[i]的值如果小于a[i]说明可以取该堆,也就是取a[i] - (res xor a[i])这么多.剩余的就是res xor a[i]. 证明..洛谷题解的大佬写的挺好的..QAQ 代码: #include <iostream> #inc…
洛谷题面传送门 SDOI 2017 R2 D1 T3,nb tea %%% 讲个笑话,最近我在学动态 dp,wjz 在学 FWT,而我们刚好在同一天做到了这道题,而这道题刚好又是 FWT+动态 dp 首先考虑怎样暴力计算答案,我们记 \(dp_{u,j}\) 表示以 \(u\) 为根的子树中有多少个连通块包含 \(u\) 且权值的异或和为 \(j\),初始 \(dp_{u,val_u}=1\),每次遍历 \(u\) 的一个子树 \(v\) 就对这个子树就对这两个子树的 \(dp\) 做一个合并,…
正解:思维题 解题报告: 传送门! 这题就是很思维题,,,想到辣实现麻油特别难,但难想到是真的TT 这题主要是要发现一个性质:&1无意义,&0相当于赋值为0,|1无意义,|1相当于赋值为1 然后知道这个性质就可以得到,要想凑出1.一定是最后一个有意义的为|1,要想凑出0,一定是最后一个有意义的为&0 很容易发现的是各个位数之间是麻油什么关系的,所以分开考虑 现在就当只考虑第i位,把这n个数的第i位全部扒出来,从右往左组成一个新的二进制数x 然后也把n个操作扒出来,&=1,|…
题目描述 Farmer John's cows like to play coin games so FJ has invented with a new two-player coin game called Xoinc for them. Initially a stack of N (5 <= N <= 2,000) coins sits on the ground; coin i from the top has integer value C_i (1 <= C_i <=…
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2.每次取走的各个元素只能是该元素所在行的行首或行尾: 3.每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*2^i,其中i表示第i次取数(从1开始编号): 4.游戏结束总得分为m次取数得分之和. 帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分. 输入输…
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使用一次.游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害.也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使…
题面 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作: 行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色) 列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色) 游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色. 对于某些关卡,小Q百思不得其解,以致他开始怀疑这些关卡是不是根本就是无…
小QQ是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N \times NN×N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作: 行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色) 列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色) 游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色. 对于某些关卡,小QQ百思不得其解,以致他开始怀疑这些关卡是不是根…
P2059 [JLOI2013]卡牌游戏 题意 有\(n\)个人玩约瑟夫游戏,有\(m\)张卡,每张卡上有一个正整数,每次庄家有放回的抽一张卡,干掉从庄家起顺时针的第\(k\)个人(计算庄家),干掉的那位下家成为新庄家,初始庄家为1,最后活下的人胜利,求每个人获胜概率. 约瑟夫类型的题目有个套路,以庄家为相对位置进行重新编号. 可以进行dp \(dp_{i,j}\)表示第\(i\)轮(倒着数的)距离庄家为\(j\)的人的获胜概率,这样就可以很简单的转移了 复杂度\(O(n^2m)\) Code:…
P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿.拿走最后一根火柴的游戏者胜利. 本题的游戏稍微有些不同:在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二个游戏者也有这样一次机会.从第三个回合(又轮到第一个游戏者)开始,规…
P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿.拿走最后一根火柴的游戏者胜利. 本题的游戏稍微有些不同:在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二个游戏者也有这样一次机会.从第三个回合(又轮到第一个游戏者)开始,规…
P1747 好奇怪的游戏 题目背景 <爱与愁的故事第三弹·shopping>娱乐章. 调调口味来道水题. 题目描述 爱与愁大神坐在公交车上无聊,于是玩起了手机.一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克).这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上.它们得从点x1,y1和x2,y2走到1,1.这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”.现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么? 输入输出格式…
题目描述 Description MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵里,有若干个敌人,你的弹珠可以摧毁敌人,但只 能攻击你所在的行.列里的所有敌人,然后你就可以获得他们的分数之和,现在请你选择 一个你的位置,使得能击杀的敌人最多,注意,你不能和敌人在一个地方 输入输出格式 Input/output 输入格式: 输入有两行,第一行一个正整数 n,接下来 n 行,每行 n 列,如果有敌人则为一个正整数,否则为 0…
题目 传送门:QWQ 分析 蒟蒻根本不会博弈论..... 只知道异或和判断Nim游戏.. 不是很懂输出的选择,所以发一篇博客以待复习 代码 #include <bits/stdc++.h> using namespace std; ; int a[maxn], n; int main(){ scanf("%d",&n); ;i<=n;i++) scanf("%d",&a[i]); ]; ;i<=n;i++) k^=a[i];…