牛客Wannafly挑战赛23 B.游戏】的更多相关文章

游戏 题目描述 小N和小O在玩游戏.他们面前放了n堆石子,第i堆石子一开始有ci颗石头.他们轮流从某堆石子中取石子,不能不取.最后无法操作的人就输了这个游戏.但他们觉得这样玩太无聊了,更新了一下规则.具体是这样的:对于一堆有恰好m颗石子的石头堆,假如一个人要从这堆石子中取石子,设他要取石子数为d,那么d必须是m的约数.最后还是无法操作者输. 现在小N先手.他想知道他第一步有多少种不同的必胜策略.一个策略指的是,从哪堆石子中,取走多少颗石子.只要取的那一堆不同,或取的数目不同,都算不同的策略. 输…
题目链接 题意 给定一张边带权的无向图,求生成树的权值和是 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}\) 然后…
牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册,支持下列 4 种操作: 插入新人名 si,声望为 a 给定名字前缀 pi 的所有人的声望值变化 di 查询名字为 sj 村民们的声望值的和(因为会有重名的) 查询名字前缀为 pj 的声望值的和 题解:一个非常明显的线段树操作,前缀可以看作是区间更新,区间查询,给定名字就是单点更新,单点查询,字典树上…
链接:https://www.nowcoder.com/acm/contest/131/A来源:牛客网 题目描述 ZZT 创造了一个队列 Q.这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示.Q1 表示队头元素,QN 表示队尾元素.队列中的元素是 N 的一个全排列. ZZT 需要在这个队列上执行 P 次操作,操作分两种: FIRST X: 将元素 X 移到队头. LAST X: 将元素 X 移到队尾. 在 P 次操作之后,ZZT 想知道队列中的元素的排列方式,由于他最近很忙,因此…
哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的\(SG\)函数的\(Nim-sum\)(就是异或和),比如多堆石子的\(SG\)函数就是所有单堆石子\(SG\)函数的异或和. \(SG\)函数 首先定义\(mex(T)\)为\(T\)中未出现的自然数中最小的数,其中\(T \subset N\),如\(mex(0,2,3)=1\),\(mex(…
原文链接https://www.cnblogs.com/zhouzhendong/p/9781060.html 题目传送门 - NowCoder Wannafly 26D 题意 放一放这一题原先的题面: 阿尔法城 空间限制 512MB时间限制 2s 题目描述 听说遥远的α城里神仙题横行,毒瘤题占道,zzd 决定来送一道温暖. zzd 现在正距离α城很远处(可以理解成无穷远),通过望远镜看到了 α 城里的景象. α城中有 n 座高楼,排成一条直线,其中第 i 座高楼的高度为 a[i] ,颜色为 c…
传送门 题面描述 一颗n个节点的树,m次操作,有点权(该节点蚂蚁个数)和边权(相邻节点的距离). 三种操作: 操作1:1 i x将节点i的点权修改为x.(1 <= i <= n; 1 <= x <= 100000) 操作2:2 i x将第i条边的边权修改为x.(1 <= i < n; 1 <= x <= 100000) 操作3:3 i 节点i发出开会指令,求树上所有蚂蚁到走到节点i的距离和.(1 <= i <= n) 题解 先转换问题为 求: \…
传送门 如果大力推单位根反演就可以获得一个 \(k^2logn\) 的好方法 \[ans_{t}=\frac{1}{k}\sum_{i=0}^{k-1}(w_k^{-t})^i(w_k^i+1)^n\] (其实可以看出推出来的式子就是 \(IDFT\) 的形式) 或者可以发现这道题就是求 \((1+x)^n\) 的循环卷积的系数 而题目中 \(k\) 一定是 \(2\) 的幂,所以带入 \(w_k^i\) 求出点值然后 \(IDFT\) 即可 \(n\) 直接对 \(mod-1\) 取模就好了…
传送门 直接的想法就是设 \(x^k\) 为边权,矩阵树定理一波后取出 \(x^{nk}\) 的系数即可 也就是求出模 \(x^k\) 意义下的循环卷积的常数项 考虑插值出最后多项式,类比 \(DFT\) 的方法 假设我们要求 \[C_i=\sum_{j=0}^{n}\sum_{k=0}^{n}A_jB_k[(j+k)~mod~n=i]\] \(A,B,C\) 为多项式 我们知道了 \(A,B\) 的 \(n\) 个点值 \[A(w_n^i)=\sum_{k=0}^{n}A_kw_n^{ik}\…
传送门 \(\color{green}{solution}\) 分析下,在\(1e5+1\)内,一个数的约数个数最多为\(2^{6}\)个,所以我们可以考虑枚举约数 复杂度\(O(N^{2^{6 \times 2}})\),实际上远远不到 #include <bits/stdc++.h> using namespace std; const int maxn = 100010; vector <int> g[maxn]; int _pow(int x, int n, int P)…
description newcoder 给你一个空的可重集合\(S\). \(n\)次操作,每次操作给出\(x\),\(k\),\(p\),执行以下操作: \(opt\ 1\):在S中加入x. \(opt\ 2\):输出 \[\sum_{y\in S}gcd(x,y)^k\] data range 所有输入的数都是小于\(10^5+1\)的正整数. solution 考场降智系列 对于一个\(x\),其\(gcd(x,y)\)有\(O(d(x))\le O(\sqrt x)\)个 这里\(d(…
参考:https://blog.csdn.net/qq_40513946/article/details/79839320 传送门:https://www.nowcoder.com/acm/contest/80/B 题意:输入n,m,求 (n*n-m)/n*n 在 取模998244353下的解: 思路:   题目给出的条件是费马小定理,那么可以知道 x负一次方等于x的(p-2)次mod(MOD)  ,所以只要快速幂求出x的(p-2) 就可以了,时间复杂度 O(logMod). ac代码: #in…
传送门:https://www.nowcoder.com/acm/contest/79#question 说是比赛题解,其实我只会前三题: 后面的一定补 T1 题意,在一个长度为n的时间内,问如何选择存款期限,使得收益最大. dp #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define fi first…
题目 可以考虑边分治,对于某一种颜色,我们处理出分治边左右两边所有以这个颜色为端点的路径长度,之后随便拼一拼就好了 但是这样对于每一组询问都需要边分一遍,这样做复杂度是\(O(nm+n\log n)\)的 还有一种更暴力的做法,就是枚举树上所有路径,这样就可以直接统计了,复杂度是\(O(n^2)\)的 把这两个暴力结合一下,当一个分治块大小小于\(\sqrt{n}\)的时候,我们就直接跑第二种暴力,否则我们就跑边分治 跑第二种暴力的时候我们需要快速判断当前这个点对对应哪一个询问,于是需要二分一下…
A---染色 签到题,设最终颜色为x,一次操作就需要把一个不是x的点变为x,所以最终颜色为x时需要操作 总结点个数-颜色为x的节点个数,然后枚举所有颜色就行了 #include <iostream> #include <string.h> #include <cstdio> #include <vector> #include <map> #include <math.h> #include <string> #inclu…
前言 比赛的时候没学过SG函数的蒟蒻以为是道结论题,但是不是QwQ 和dummyummy巨佬一起推了快三个小时的规律 最后去问了真正的巨佬__stdcall __stdcall面带微笑的告诉我们,这是SG函数的板子题 QwQ 被卡科技了 体验极差 正文 题目 链接:https://www.nowcoder.com/acm/contest/161/B来源:牛客网 题目描述 小N和小O在玩游戏.他们面前放了n堆石子,第i堆石子一开始有ci颗石头.他们轮流从某堆石子中取石子,不能不取.最后无法操作的人…
链接:https://www.nowcoder.com/acm/contest/156/F 来源:牛客网 题目描述 题目背景编不下去了 托米有一棵有根树 T, 树根为1,每轮他会在剩下的子树中等概率一个点 u, 砍掉 u 的子树 (包含 u),如果树上的点都被砍光了,游戏结束. 求出这个游戏进行的期望轮数,可以证明这个数一定是有理数,设他为 , 你需要告诉他一个整数 x 满足 输入描述: 第一行输入一个数 n, 表示 T 的点数,下面 n- 行给出了 T 的每条边 输出描述: 一行一个整数表示答…
链接:https://www.nowcoder.com/acm/contest/157/E来源:牛客网 有一只可爱的老青蛙,在路的另一端发现了一个黑的东西,想过去一探究竟.于是便开始踏上了旅途 一直这个小路上有很多的隧道,从隧道的a进入,会从b出来,但是隧道不可以反向走. 这只青蛙因为太老了,所以很懒,现在想请你帮帮慢,问他最少需要几步才可以到达对面. 将小径看作一条数轴,青蛙初始在0上,这只青蛙可以向前跳也可以向后跳,但每次只能跳一格,每跳一格记作一步,从隧道进到隧道出算做一步. 输入描述:第…
链接:https://www.nowcoder.com/acm/contest/131/B来源:牛客网 矩阵 M 包含 R 行 C 列,第 i 行第 j 列的值为 Mi,j. 请寻找一个子矩阵,使得这个子矩阵的和最大,且满足以下三个条件: 子矩阵的行数不能超过 X 行. 子矩阵的列数不能超过 Y 列. 子矩阵中 0 的个数不能超过 Z 个. 请输出满足以上条件的最大子矩阵和. 输入描述: 第一行输入五个整数 R,C,X,Y,Z. 接下来 N 行,每行输入 M 个整数,第 i 行第 j 列的整数表…
A.骰⼦的游戏 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld 题目描述 在Alice和Bob面前的是两个骰子,上面分别写了六个数字. Alice和Bob轮流丢掷骰子,Alice选择第一个骰子,而Bob选择第二个,如果谁投掷出的数更大,谁就可以获胜. 现在给定这两个骰子上的6个数字,你需要回答是Alice获胜几率更大,还是Bob获胜几率更大.(请注意获胜几率相同的情况)   输入描述: 第一行一个数T,表…
B. 游戏 大意: $n$堆石子, 第$i$堆初始$a_i$, 每次只能选一堆, 假设一堆个数$x$, 只能取$x$的约数, 求先手第一步必胜取法. SG入门题, 预处理出所有$SG$值. 先手要必胜必须满足留给后手的异或值为0. #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <math.h> #include <…
题目描述 小N现在有一个字符串S.他把这这个字符串的所有子串都挑了出来.一个S的子串T是合法的,当且仅当T中包含了所有的小写字母.小N希望知道所有的合法的S的子串中,长度最短是多少. 输入描述: 一行一个字符串S.只包含小写字母.S的长度不超过106. 输出描述: 一行一个数字,代表最短长度.数据保证存在一个合法的S的子串. 示例1 输入 复制 ykjygvedtysvyymzfizzwkjamefxjnrnphqwnfhrnbhwjhqcgqnplodeestu 输出 复制 49 #inclu…
大意: 给定树, 每个点初始权值0, 每次询问给出$x$, $x$权值+1, 求距离$x$不超过2的权值和. 这题数据范围过大, 动态点分治卡不过去, 考虑其他做法 考虑每次只加范围$1$, c[0]是单点更新, c[1]是更新所有儿子 while (m--) { int x; scanf("%d", &x); ++c[fa[x]][0],++c[x][0]; ++c[x][1]; printf("%d\n", c[x][0]+c[fa[x]][1]); }…
题目链接 题意 : 中文题.点链接 分析 : 前置技能是 SG 函数.NIM博弈变形 每次可取石子是约数的情况下.那么就要打出 SG 函数 才可以去通过异或操作判断一个局面的胜负 打 SG 函数的时候.由于 N 很大 所以不能使用递归的方式打表.会爆栈 还有要预处理每个数的约数 打出 SG 函数之后 暴力判断初始局面的每堆石子取走约数后是否对答案产生贡献 #include<bits/stdc++.h> #define LL long long #define ULL unsigned long…
链接:https://ac.nowcoder.com/acm/contest/635/D来源:牛客网 D.绕圈游戏 433为了帮ddd提升智商,决定陪他van特殊的游戏.433给定一个带有n个点的环,游戏从1号点开始,433选择任意一个K值(1<=K<=n),意味着ddd可以每次前进K个单位,当ddd再次到达1号点时游戏结束.智商为负数的ddd并不觉得这有什么难度,这时433一脸坏笑的告诉ddd,游戏的真正目的是:有任意K,满足1<=K<=n,求从开始到结束的所有情况的点数和.例如…
链接:https://ac.nowcoder.com/acm/contest/946/E 来源:牛客网 筱玛爱游戏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 筱玛是一个热爱游戏的好筱玛.最近,筱玛和马爷在玩这样一种游戏: 首先,桌面上一共有 n n个数. 两个人轮流从桌面上取走一个数,并把这个数放入集合中. 如果在某次操作结束后,集合中存在一个异或和为 0 0的非空子集,那么进行…
写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Brother Ya和Brother Bo现在要开始睡觉啦! 假设当前的时间为yyyy-mm-dd hh:mm:ss,他们两个会一觉睡t秒,请问他们睡醒的时刻是几天以后(过了晚上12点就算一天)?…
  C.列一列   时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld 链接:https://www.nowcoder.net/acm/contest/71/C来源:牛客网 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算非常精准,但很快他就弄混了自己的草稿纸,他找出了一些他计算的结果,但他忘记了这些都是数列中的第几项. 输入描述: 每行包括数列中的一项A…
链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 令 X = n!, 给定一大于1的正整数p 求一个k使得 p ^k | X 并且 p ^(k + 1) 不是X的因子. 输入描述: 两个数n, p (1e18>= n>= 10000 >= p >= 2) 输出描述: 一个数…
蓝魔法师 链接: https://www.nowcoder.com/acm/contest/215/C 来源:牛客网 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于\(k\),两种方案不同当且仅当存在一条边在一个方案中被删除,而在另一个方案中未被删除,答案对\(998244353\)取模 输入描述: 第一行两个整数\(n\),\(k\), 表示点数和限制 \(2 \le n \le 2000, 1…