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

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,意义如题目描述. 输出描述: 对于每组数据,输出一个整数,…
链接:https://www.nowcoder.com/acm/contest/80/A来源:牛客网 zzy的小号 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 学家zzy根据字体的特点,创建了一系列小号...  I_Love_Chtholly! 又到了打wannafly的时候,许许多多的大佬准备注册小号开始虐场,zzy也不例外,他发现他的电脑的字体有一个特点!某些不同的字符所显示的是…
A 珂朵莉与宇宙 题目链接: https://www.nowcoder.com/acm/contest/36/A 思路: 科学暴力:枚举前缀和,同时计算前缀和里面可能出现的完全平方数,匹配前缀和 与完全平方数的差值是否在之前的前缀和出现,出现了几次就是存在多少个区间,利用的是连续的性质. 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 100005; int n;…
B 遇见 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 65536K,其他语言131072K64bit IO Format: %lld题目描述A和B在同一条路上,他们之间的距离为 k 米.A现在想见到B,所以A开车以 x km/h的速度朝着B的方向行驶,同时B也以 y km/h的速度朝着A的方向走去.A的车有 n 个档位,每个档位有不同的速度.现在假设A开车去见B,求他最快和最慢在几秒后能见到B.输入描述:一开始一行三个整数 n, m, k ,代表A的车的档位数.B行走的速度和A…
哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的\(SG\)函数的\(Nim-sum\)(就是异或和),比如多堆石子的\(SG\)函数就是所有单堆石子\(SG\)函数的异或和. \(SG\)函数 首先定义\(mex(T)\)为\(T\)中未出现的自然数中最小的数,其中\(T \subset N\),如\(mex(0,2,3)=1\),\(mex(…
题目链接:https://www.nowcoder.com/acm/contest/15/C 思路:虚树,取两点间的lca,构造成一颗新的树:求(直径+1)/2即可 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<cmath> #include<string> #include<q…
总结- A-开始觉得是找规律,最开始模拟当时我觉得如果L达到1e9的范围的话,岂不是要加1e9次,模拟也就没有认真写,现在想来,后面由于加的不再是1,而是我前面的值,这样相当了一个斐波那契的类型,而斐波那契的增子速度是非常快的,因此时间复杂度并不是太高. #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> #define ll long long using…
爆零祭 T1 这题第一反应gcd啊 所以就把每个a[i]对m取模 然后求它们的gcd 即res = gcd(a[1] % m, a[2] % m, ... , a[n] % m) ans = 1 + (m - 1) / res; 给res判个零 是零直接输出一 后来发现这么干的话 对于数据 3 10 9 9 9 gcd是9哇 但是所有的模数都能取到 就无厘头改成了res = min(res, m - res) 乍一看貌似很有道理 但是不会证 也wa凉凉啊 比赛后看到题解说是gcd(m, a[1]…