Wannafly挑战赛19 A-队列Q】的更多相关文章

链接: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 想知道队列中的元素的排列方式,由于他最近很忙,因此…
题目描述 ZZT 创造了一个队列 Q.这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示.Q1 表示队头元素,QN 表示队尾元素.队列中的元素是 N 的一个全排列. ZZT 需要在这个队列上执行 P 次操作,操作分两种:FIRST X: 将元素 X 移到队头.LAST X: 将元素 X 移到队尾.在 P 次操作之后,ZZT 想知道队列中的元素的排列方式,由于他最近很忙,因此需要请你帮他解决这个问题. 输入描述: 第一行输入一个正整数 N,表示队列的大小.第二行输入 N 个正整数,Q…
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wannafly 挑战赛 19 参考题解 命题:周甄陶 Problem A. 队列 Q 将操作离线倒序处理,可以线性效率解决这个问题.看代码很快就能懂了,不再赘述. 时间复杂度:$O(N + Q)$ Problem B. 矩阵 首先看一个问题:有一个长度为 $N$ 的序列 $A$,对于每一个位置 $i$,计算…
矩阵 思路: 预处理好前缀和,枚举上边界和下边界,将二维变成一维,用单调队列找满足题意的最小前缀 复杂度,O(r*r*c) 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define L…
题目描述 “为世界上所有的美好而战!”小Q同学最近沉迷“稳固3”,为了从最新的蛋池中抽出自己喜欢的角色卡,不惜氪下重金.在这个游戏中,氪一单可以得到x个宝石,而抽一次卡需要花费y个宝石,由于游戏策划十分“良心”,抽卡是独立重复实验,单次抽出目标角色卡的概率是p且不存在所谓的“保底”.为了尽可能省钱,小Q同学只会在抽卡所需宝石不足的情况下再氪一单,并且抽出目标角色卡之后会立即停止抽卡,他想知道为了抽出目标角色卡期望要氪多少单. 输入描述: 输入只有一行,包含三个整数x,y,q(0<x,y,q<1…
传送门 $k$的范围非常小, $O(n2^k)$求出状态最多为$S$的路径数, 然后容斥. #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <math.h> #include <set> #include <map> #include <queue> #include <strin…
题目链接 https://www.nowcoder.com/acm/contest/212/F 题解 我们先考虑如果已知了数组 \(\{a_i\}\) 和 \(\{b_i\}\),如何判断其是否合法. 很显然我们可以使用网络流,具体建图如下:从源点 \(s\) 向每一个行对应的结点连边,容量为 \(a_i\):每一个行对应的结点向每一个列对应的结点连边,容量为 \(1\):每一个列对应的结点向汇点 \(t\) 连边,容量为 \(b_i\).那么 \(\{a_i\}\) 与 \(\{b_i\}\)…
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挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子数为奇数的一堆石子分为两堆正整数个石子: 把两堆石子数为偶数的石子合并为一堆. 若两人都按照最优策略进行操作.求若A先手,最后谁能赢得比赛. 思路: 首先最优策略中一定是将奇数拆成\(1\)和另一个偶数,然后不断将所有偶数进行合并. 因此我们可以统计非\(1\)奇数的个数\(a\)和所有非\(1\)…
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挑战赛2_D Delete Problem : 给定一张n个点,m条边的带权有向无环图,同时给定起点S和终点T,一共有q个询问,每次询问删掉某个点和所有与它相连的边之后S到T的最短路,询问之间互相独立(即删除操作在询问结束之后会立即撤销),如果删了那个点后不存在S到T的最短路,则输出-1. n,q <= 10^5 Solution : 注意到题中所给的是DAG,首先可以找出图中结点的拓扑序.对于删除掉某个点之后,若仍存在一条从S到T的最短路,那么对应到拓扑序中,必然有一条边跨过了…
[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挑战赛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挑战赛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挑战赛18 E 极差 题意 给出三个长度为n的正整数序列,一个区间[L,R]的价值定义为:三个序列中,这个区间的极差(最大值与最小值之差)的乘积. 求所有区间的价值之和.答案对\(2^{32}\)取模. 题解 如果只有一个区间,我们可以枚举区间右端点,当右端点向右移动,左端点在[x, r]的一些区间的值会发生改变,可以用单调栈和线段树维护. 至于三个区间,可以用八棵线段树维护选中的某几个区间想乘的值. 代码 #include<bits/stdc++.h> using names…
链接: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挑战赛29F]最后之作(Trie树,动态规划,斜率优化) 题面 牛客 题解 首先考虑怎么计算\([l,r]\)这个子串的不同的串的个数. 如果\(l=1\),我们构建\(Trie\)树然后第\(i\)层的点的个数就是\([1,i]\)的答案. 如果\(l\)要向右移动一位,显然就是我们要把最上面那一层给删掉. 那么我们暴力对\(Trie\)树进行合并,因为每个点最多只会被合并一次,所以复杂度是\(O(|\sum|*tot)\)的,其中\(tot\)是\(Trie\)树点数,\(…
链接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 对于一个…
NC17059 队列Q 题目 题目描述 ZZT 创造了一个队列 Q.这个队列包含了 N 个元素,队列中的第 i 个元素用 \(Q_i\) 表示.Q1 表示队头元素,\(Q_N\) 表示队尾元素.队列中的元素是 N 的一个全排列. ZZT 需要在这个队列上执行 P 次操作,操作分两种: FIRST X: 将元素 X 移到队头. LAST X: 将元素 X 移到队尾. 在 P 次操作之后,ZZT 想知道队列中的元素的排列方式,由于他最近很忙,因此需要请你帮他解决这个问题. 输入描述 第一行输入一个正…
原文链接https://www.cnblogs.com/zhouzhendong/p/9781060.html 题目传送门 - NowCoder Wannafly 26D 题意 放一放这一题原先的题面: 阿尔法城 空间限制 512MB时间限制 2s 题目描述 听说遥远的α城里神仙题横行,毒瘤题占道,zzd 决定来送一道温暖. zzd 现在正距离α城很远处(可以理解成无穷远),通过望远镜看到了 α 城里的景象. α城中有 n 座高楼,排成一条直线,其中第 i 座高楼的高度为 a[i] ,颜色为 c…
链接: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也不例外,他发现他的电脑的字体有一个特点!某些不同的字符所显示的是…
链接: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 列的整数表…