Wannafly挑战赛23】的更多相关文章

哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的\(SG\)函数的\(Nim-sum\)(就是异或和),比如多堆石子的\(SG\)函数就是所有单堆石子\(SG\)函数的异或和. \(SG\)函数 首先定义\(mex(T)\)为\(T\)中未出现的自然数中最小的数,其中\(T \subset N\),如\(mex(0,2,3)=1\),\(mex(…
前言 比赛的时候没学过SG函数的蒟蒻以为是道结论题,但是不是QwQ 和dummyummy巨佬一起推了快三个小时的规律 最后去问了真正的巨佬__stdcall __stdcall面带微笑的告诉我们,这是SG函数的板子题 QwQ 被卡科技了 体验极差 正文 题目 链接:https://www.nowcoder.com/acm/contest/161/B来源:牛客网 题目描述 小N和小O在玩游戏.他们面前放了n堆石子,第i堆石子一开始有ci颗石头.他们轮流从某堆石子中取石子,不能不取.最后无法操作的人…
题目描述 小N现在有一个字符串S.他把这这个字符串的所有子串都挑了出来.一个S的子串T是合法的,当且仅当T中包含了所有的小写字母.小N希望知道所有的合法的S的子串中,长度最短是多少. 输入描述: 一行一个字符串S.只包含小写字母.S的长度不超过106. 输出描述: 一行一个数字,代表最短长度.数据保证存在一个合法的S的子串. 示例1 输入 复制 ykjygvedtysvyymzfizzwkjamefxjnrnphqwnfhrnbhwjhqcgqnplodeestu 输出 复制 49 #inclu…
游戏 题目描述 小N和小O在玩游戏.他们面前放了n堆石子,第i堆石子一开始有ci颗石头.他们轮流从某堆石子中取石子,不能不取.最后无法操作的人就输了这个游戏.但他们觉得这样玩太无聊了,更新了一下规则.具体是这样的:对于一堆有恰好m颗石子的石头堆,假如一个人要从这堆石子中取石子,设他要取石子数为d,那么d必须是m的约数.最后还是无法操作者输. 现在小N先手.他想知道他第一步有多少种不同的必胜策略.一个策略指的是,从哪堆石子中,取走多少颗石子.只要取的那一堆不同,或取的数目不同,都算不同的策略. 输…
B. 游戏 大意: $n$堆石子, 第$i$堆初始$a_i$, 每次只能选一堆, 假设一堆个数$x$, 只能取$x$的约数, 求先手第一步必胜取法. SG入门题, 预处理出所有$SG$值. 先手要必胜必须满足留给后手的异或值为0. #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <math.h> #include <…
题目链接 题意 给定一张边带权的无向图,求生成树的权值和是 k 的倍数的生成树个数模 p 的值. \(n\leq 100,k\leq 100,p\mod k=1\) Sol 看见整除然后 \(p\mod k=1\) ,那么可以套个单位根反演. 我们要求的东西就是: \(\sum_{E}[k|(\sum_{e\in E}val_e)]\) 单位根反演一套: \(\frac{1}{k}\sum_{E} \sum_{i=0}^{k-1} w_k^{(\sum_{e\in E}val_e)i}\) 然后…
hihoCoder挑战赛23 A.Emulator 题意 给一张图,有\(N(N \le 300)\)个点, 给出任意两点之间的最短路. 求最多可以去掉多少条边,使得任意两点的最短路长度不变. 思路 若一条边\((i,j)\)可以去掉,那么必然存在路径\(d(i, k) + d(k, j) = d(i, j)\). 代码 hihoCoder_1379 B.Certificate 题意 已知有\(N(N \le 14)\)个变量,变量取值\(0\)或\(1\). 已知\(f(0,0,\cdots,…
Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\)并且\(p^{k+1}\not|x\)的因子. 思路: 枚举\(p\)的每一个质因数\(q\),求出它在\(n!\)出现次数\(/p\)中出现次数,取\(\min\)即可.对于一个质因数\(q\),在\(n!\)中出现的次数等于\(\sum_{i=1}^{\inf}\frac n{q^i}\).…
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由于某一场比赛打了一半就咕咕咕了,现在$Rating$已经降得很低了,干脆打一场碰碰运气好了. 差六名就抽到我发奖品了,就当攒点$rp$给联赛好了. T1:http://www.nowcoder.com/acm/contest/215/A 题意概述:给出长度为$n$的序列, 求有多少对数对 $(i,j…
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wannafly 挑战赛 19 参考题解 命题:周甄陶 Problem A. 队列 Q 将操作离线倒序处理,可以线性效率解决这个问题.看代码很快就能懂了,不再赘述. 时间复杂度:$O(N + Q)$ Problem B. 矩阵 首先看一个问题:有一个长度为 $N$ 的序列 $A$,对于每一个位置 $i$,计算…
题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define Pi 3.14159265 struct Point{ double x,y; void input() { scanf("%lf%lf",&x,&y); } void output() { printf("%f %f\n", x,y); } }p[M…
Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子数为奇数的一堆石子分为两堆正整数个石子: 把两堆石子数为偶数的石子合并为一堆. 若两人都按照最优策略进行操作.求若A先手,最后谁能赢得比赛. 思路: 首先最优策略中一定是将奇数拆成\(1\)和另一个偶数,然后不断将所有偶数进行合并. 因此我们可以统计非\(1\)奇数的个数\(a\)和所有非\(1\)…
Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{j<i}f[j]}{i}+1\) \(\frac{i-1}{i}f[i]=\frac{\sum_{j<i}f[j]+i}{i}\) \(f[i]=\frac{\sum_{j<i}f[j]+i}{i-1}\) 一边求逆元一边dp即可 #include<bits/stdc++.h>…
Wannafly挑战赛18B 随机数 设\(f_i\)表示生成\(i\)个数有奇数个1的概率. 那么显而易见的递推式:\(f_i=p(1-f_{i-1})+(1-p)f_{i-1}=(1-2p)f_{i-1}+p\) 简化一下,设\(A=1-2p,B=p\)则\(f_i=A\times f_{i-1}+B\) 大力拆...\(f_n=Af_{n-1}+B=A(Af_{n-2}+B)+B=A(A(Af_{n-3}+B)+B)+B...\) 最后\(f_n=\underbrace{(A(A(A(\c…
Wannafly挑战赛22游记 幸运的人都是相似的,不幸的人各有各的不幸. --题记 A-计数器 题目大意: 有一个计数器,计数器的初始值为\(0\),每次操作你可以把计数器的值加上\(a_1,a_2,\ldots,a_n\)中的任意一个整数,操作次数不限(可以为\(0\)次),问计数器的值对\(m\)取模后有几种可能. 思路: 由裴蜀定理易得,答案即为\(\frac m{\gcd(m,a_1,a_2,\ldots,a_n)}\). 源代码: #include<cstdio> #include…
[Wannafly挑战赛4]F 线路规划 题目描述 Q国的监察院是一个神秘的组织.这个组织掌握了整个帝国的地下力量,监察着Q国的每一个人.监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只听从其上直接司的命令.其中1号成员是监察院的院长,这个庞然大物的主人.由于时代的进步,监察院议会决定升级组织的旧式通信器,安装最新的反侦测通信器.他们拿出了M组线路方案,其中第i组线路方案可以用一个四元组(x[i].y[i].k[i].w[i])描述,表示第x[i]号成员可以安装与y[i]号成员的直…
Wannafly挑战赛18 E 极差 题意 给出三个长度为n的正整数序列,一个区间[L,R]的价值定义为:三个序列中,这个区间的极差(最大值与最小值之差)的乘积. 求所有区间的价值之和.答案对\(2^{32}\)取模. 题解 如果只有一个区间,我们可以枚举区间右端点,当右端点向右移动,左端点在[x, r]的一些区间的值会发生改变,可以用单调栈和线段树维护. 至于三个区间,可以用八棵线段树维护选中的某几个区间想乘的值. 代码 #include<bits/stdc++.h> using names…
题目链接 https://www.nowcoder.com/acm/contest/212/F 题解 我们先考虑如果已知了数组 \(\{a_i\}\) 和 \(\{b_i\}\),如何判断其是否合法. 很显然我们可以使用网络流,具体建图如下:从源点 \(s\) 向每一个行对应的结点连边,容量为 \(a_i\):每一个行对应的结点向每一个列对应的结点连边,容量为 \(1\):每一个列对应的结点向汇点 \(t\) 连边,容量为 \(b_i\).那么 \(\{a_i\}\) 与 \(\{b_i\}\)…
链接:Wannafly挑战赛21:C - 大水题 题意: 现在给你N个正整数ai,每个数给出一“好数程度” gi(数值相同但位置不同的数之间可能有不同的好数程度).对于在 i 位置的数,如果有一在j位置的数满足 j < i 且 ai=aj,则你可以将位于[i,j]闭区间内的序列评为“好序列”,然后获得∑gk(j≤k≤i)(此闭区间内“好数程度”之和)分数. 注意: 在所有情况下,每个数都只能被一个”好序列”包含(只能与其他相应数被评为”好序列”一次):在符合要求的情况下,”好序列”的评定次数不受…
Wannafly挑战赛4. B 题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次++,从大于r的点每次--,记录二进制上所有权值和 代码: #include<bits/stdc++.h> #define db double #define ll long long #define vec vector<ll> #define Mt vector<vec>…
Wannafly挑战赛2_D Delete Problem : 给定一张n个点,m条边的带权有向无环图,同时给定起点S和终点T,一共有q个询问,每次询问删掉某个点和所有与它相连的边之后S到T的最短路,询问之间互相独立(即删除操作在询问结束之后会立即撤销),如果删了那个点后不存在S到T的最短路,则输出-1. n,q <= 10^5 Solution : 注意到题中所给的是DAG,首先可以找出图中结点的拓扑序.对于删除掉某个点之后,若仍存在一条从S到T的最短路,那么对应到拓扑序中,必然有一条边跨过了…
[Wannafly挑战赛29F]最后之作(Trie树,动态规划,斜率优化) 题面 牛客 题解 首先考虑怎么计算\([l,r]\)这个子串的不同的串的个数. 如果\(l=1\),我们构建\(Trie\)树然后第\(i\)层的点的个数就是\([1,i]\)的答案. 如果\(l\)要向右移动一位,显然就是我们要把最上面那一层给删掉. 那么我们暴力对\(Trie\)树进行合并,因为每个点最多只会被合并一次,所以复杂度是\(O(|\sum|*tot)\)的,其中\(tot\)是\(Trie\)树点数,\(…
[Wannafly挑战赛24E]旅行 题面 牛客 题解 首先有一个非常显然的\(dp\):我们直接把\(s\rightarrow t\)的路径抠出来然后设\(f_{i,j}\)表示到第\(i\)个点,目前余数为\(j\)的方案数. 但是这样子复杂度显然是不对的,我们想办法快速合并对于某个点\(u\),\(s\rightarrow u\),\(t\rightarrow u\)的答案. 一般这个点\(u\)都是\(lca(s,t)\)但是我们这道题有一个特别神仙的思路就是将这个点\(u\)设为\(s…
链接Wannafly挑战赛27 D绿魔法师 一个空的可重集合\(S\),\(n\)次操作,每次操作给出\(x,k,p\),要求支持下列操作: 1.在\(S\)中加入\(x\). 2.求\[\sum_{y\in S}gcd(x,y)^k\ mod\ p\] 所有输入的数不超过\(10^5\). 不是莫比乌斯啊. 做法比较暴力,应该有更好的\(idea\) 首先把\(1\)到\(n\)的每个数的所有因数筛出来,\(nlnn\)即可. 然后考虑怎么算一个数的答案. 首先\(gcd\)意味着最后算入答案…
链接Wannafly挑战赛27 C蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于\(k\),\(n,k\leq 2*10^3\) 假设我们正在考虑\(i\)这个子树,那么不和\(i\)连边的内部节点所在联通块大小是不会再发生改变了,所以我们根本不关心内部联通情况,只关心\(i\)的联通情况,因为\(i\)有可能会和父亲连边形成更大的联通块. 考虑\(f_{i,j}\)表示考虑子树\(i\),过子树\(i\)的联通块大小为\(j\)的方案数. 这个是考试的时候设的状态…
牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册,支持下列 4 种操作: 插入新人名 si,声望为 a 给定名字前缀 pi 的所有人的声望值变化 di 查询名字为 sj 村民们的声望值的和(因为会有重名的) 查询名字前缀为 pj 的声望值的和 题解:一个非常明显的线段树操作,前缀可以看作是区间更新,区间查询,给定名字就是单点更新,单点查询,字典树上…
Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数 题目描述 给你一个长为n的序列a,有n*(n+1)/2个子区间,问这些子区间里面和为完全平方数的子区间个数 输入描述: 第一行一个数n 第二行n个数表示序列a 输出描述: 输出一个数表示答案 示例1 输入 6 0 1 0 9 1 0 输出 11 备注: 1 <= n <= 100000 0 <= ai <= 10 思路 用前缀和来求任意字段的和 长度为n的序列a[1],a[2], ….,a[n] 有前缀和prefix_s…
Wannafly挑战赛13 zzf的好矩阵 题解 文章目录 Wannafly挑战赛13 zzf的好矩阵 题解 分析 结论1 结论2 结论3 C数组对应带子说明 空白长度论述 后续黑色长度论述 能"密铺"的带子形式及特征 最终结论 链接:https://ac.nowcoder.com/acm/contest/80/C 分析 每个格子都有至少一个麦穗 每个格子最多只能有p*p个麦穗 任意两个格子的麦穗数不同 结论1 由以上三点易得所有格子的麦穗数为p2p^2p2的全排列. 结论2 对于一个…
原文链接https://www.cnblogs.com/zhouzhendong/p/9781060.html 题目传送门 - NowCoder Wannafly 26D 题意 放一放这一题原先的题面: 阿尔法城 空间限制 512MB时间限制 2s 题目描述 听说遥远的α城里神仙题横行,毒瘤题占道,zzd 决定来送一道温暖. zzd 现在正距离α城很远处(可以理解成无穷远),通过望远镜看到了 α 城里的景象. α城中有 n 座高楼,排成一条直线,其中第 i 座高楼的高度为 a[i] ,颜色为 c…
第一次打wannafly..觉得自己好菜啊... 题目描述 在三维空间中,平面 x = 0, y = 0, z = 0,以及平面 x + y + z = K 围成了一个三棱锥. 整天与整数打交道的小明希望知道这个三棱锥内.上整点的数目. 他觉得数量可能很多,所以答案需要对给定的 M 取模. 输入描述: 输入有 1 ≤ T ≤ 10 5 组数据.每组数据中,输入两个整数 0 ≤ K ≤ 10 9 + 7, 1 ≤ M ≤ 10 9 + 7,意义如题目描述. 输出描述: 对于每组数据,输出一个整数,…