小a的强迫症 题解】的更多相关文章

题面: 小a是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现在有N种颜色,其中第i种颜色的柱子有num(i)个.要求排列中第i种颜色珠子的最后一个珠子,一定要排在第i+1种颜色的最后一个珠子之前.问有多少种排列珠子的方案. 输入格式 第一行一个整数N,表示珠子颜色数量第二行N个整数,分别表示每种珠子的颜色数量 输出格式 排列方案数,对998244353取余 样例输入 3 2 2 1 样例输出 3 数据规模及约定 共3种排列方案: 12123 11223 21123 对于40%的数据,所有…
[JZOJ4786]小a的强迫症 题目大意: 有\(n(n\le10^5)\)种颜色的珠子,第\(i\)种颜色有\(num[i]\)个.你要把这些珠子排成一排,使得第\(i\)种颜色的最后一个珠子一定在第\(i+1\)种珠子的最后一个珠子之前,求方案数. 思路: \(f_i\)表示排完前\(i\)种颜色的方案数,显然前\(num[i]-1\)个可以瞎放,剩下一个一定要放最后,所以\(f_i=f_{i-1}\times\frac{(\sum_{j\le i}num[j]-1)!}{(\sum_{k…
小Z的袜子(题解)(莫队) Junlier良心莫队 题目 luoguP1494 [国家集训队]小Z的袜子 code #include<bits/stdc++.h> #define lst long long #define ldb double #define N 50050 using namespace std; const int Inf=1e9; int read() { int s=0,m=0;char ch=getchar(); while(ch<'0'||ch>'9'…
小B的询问(题解)(莫队) Junlier良心莫队 题目 luoguP2709 小B的询问 code #include<bits/stdc++.h> #define lst long long #define ldb double #define N 50050 using namespace std; const int Inf=1e9; int read() { int s=0,m=0;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch…
描述 小Ho在一条笔直的街道上散步.街道上铺着长度为L的石板,所以每隔L距离就有一条石板连接的缝隙,如下图所示. 小Ho在散步的时候有奇怪的强迫症,他不希望脚踩在石板的缝隙上.(如果小Ho一只脚的脚尖和脚跟分别处于一条缝隙的两侧,我们就认为他踩在了缝隙上.如果只有脚尖或脚跟接触缝隙,不算做踩在缝隙上) 现在我们已知小Ho两只脚的长度F以及每一步步伐的长度D.如果小Ho可以任意选择起始位置,请你判断小Ho能否保持不踩缝隙散步至无穷远处? 输入 第一行是一个整数T,表示测试数据的组数. 每组测试数据…
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬. 你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子.当然,小Z希望这个概率尽量高,所以他可能会询问多个(L,R)以方便自己…
https://www.luogu.org/problemnew/show/2709 http://www.lydsy.com/JudgeOnline/problem.php?id=3781 题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数.小B请你帮助他回答询问. 输入输出格式 输入格式: 第一行,三个整数N.M.K. 第二行,N个整数,…
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬.你的任务便是告诉小Z,他有多…
问题描述: 小a是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现在有N种颜色,其中第i种颜色的柱子有num(i)个.要求排列中第i种颜色珠子的最后一个珠子,一定要排在第i+1种颜色的最后一个珠子之前.问有多少种排列珠子的方案. 输入格式: 第一行: 一个整数N,表示珠子颜色数量 第二行: N个整数,分别表示每种珠子的颜色数量 输出格式: 排列方案数,对998244353取余 思路: 对此,我要狠狠的揍一通我的电脑和我的脑子(电脑你为什么突然开不了机?我为什么本来想的是正解却超级复杂???…
C 小G坐电梯 题目描述 小G来到了著名的某大厦.大厦一共有n层,初始的时候小G在第 A 层. 小G特别想去B层小 M 的办公室看一看,然而因为安保原因,B层已经被封锁无法进入. 但是小G既然来了,就想在大厦里面逛一逛.大厦里面有一部电梯,小G决定坐 k 次电梯. 因为小G比较无聊,他给自己设定了这样一个规矩:假如当前他在x层,则他要去的下一个楼层y和x的楼层差必须要小于 x 和 B 的楼层差,即 \(|x−y| < |x−B|\) . 每到达一个楼层,小G都要记录下来其楼层号. 当小G转完一圈…
T66597 小xzy的任务 题目背景 今天,小xzy的班主任交给他一个严肃的任务,匹配羽毛球运动员! ! ! 题目描述 羽毛球队有男女运动员各n人.给定2个n×n矩阵P和Q.Pij​是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势:Qij​是女运动员ii和男运动员j配合的女运动员竞赛优势.由于技术配合和心理状态等各种因素影响,Pij​不一定等于Qji​.男运动员ii和女运动员jj配对组成混合双打的男女双方竞赛优势为Pij​∗Qji​.设计一个算法,计算男女运动员最佳配对法,使各组男女…
https://hihocoder.com/problemset/problem/1513 小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好. 小Hi在高中期间参加了市里的期末考试,一共五门:语文.数学.英语.物理.化学. 成绩出来之后,小Hi发现有些同学,所有科目都考的比他好,他很烦恼.所以他想知道所有科目都比自己名次靠前的同学的人数. 为了方便,可以认为不存在两个人某一门名次是相同的. 其他同学们也想知道有多少人全面碾压了他们,所以你需要对所有人输出答案. 解…
题目链接 题解 不包含所有颜色 就强制不选一个颜色 图中圆点颜色相同 矩形越大,包括的点一定不比其一小部分少 如图所示,最大矩形只有3种 离散化\(x\)坐标 然后按\(y\)排序 每次取出颜色的前驱和后继, 算出所围矩形内点的个数,取\(max\) 对于第\(3\)种,扫一遍\(set\)即可 Code #include<bits/stdc++.h> #define LL long long #define RG register using namespace std; inline in…
[题目链接]:http://hihocoder.com/problemset/problem/1473 [题意] [题解] 假定初始为在在0位置(相对它左边那条线); 则考虑; 多少步之后,人又能这到达相对位置为0的点(相对左边那条线); 应该是L/gcd(L,D)步; 因为D*L/gcd(L,D)是L,D的最小公倍数; 且可以证明 在走的每一步 在0..L上都是均匀的; 即,数轴0..L-1上 把 (k*D)%L记录在这个数轴上(L/GCD(L,D)个点) k代表步数; 第k步就在从左往右数的…
U96762 小R与三角形 原题链接 题目描述 小 R 所在的小镇有 n 个村落,这 n 个村落分布在一个圆周上,这些村落之间两两有直达的小路,小路可能相交,但不存在三条路交于一点.现在小 R 正好放暑假了,每天都在村落间游荡.一天,他发现可以从一个非村落的点出发,在不经过村落的情况下经过三条小路再回到这个点.于是他很好奇,一共有多少个这样的回路呢? 输入格式 第一行一个正整数 n,含义如上. 输出格式 第一行一个正整数,表示回路的个数 输入输出样例 输入 #1 6 输出 #1 1 输入 #2…
题意:如果一个数字用十进制表示,有大于等于1个1,或者大于等于2个2,或者大于等于3个3,或者大于等于4个4,或者大于等于5个5,或者大于等于6个6,或者大于等于7个7,或者大于等于8个8,或者大于等于9个9 则称这个数字为好数字,问 $ l,r $ 区间内有多少个好数字. 数据范围 $ l,r <=10^9 $ 对于这一题,我们可以分段打表,这题在 $ 1e6 $ 的范围内是可以无压力跑过的,于是我们将 $ 1e9 $ 分成 $ 1e3 $ 个 $ 1e6 $ 打表出整数部分,再去跑小的部分,…
善意的投票: 因为只有\(2\)种意愿,不妨让想睡午觉的和源点连边,让不想睡午觉的和汇点连边.对于每一对好朋友,在他们之间连边.那么只要源点和汇点还联通,就存在一对好友是冲突的,我们现在要做的就是删去最少的边,使得源点和汇点孤立,问题转化为最小割,用最大流求解即可. #include <bits/stdc++.h> int n,m; int S,T; int head[200000],tot=1; int cur[200000]; int deep[200000]; std::queue<…
前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能整除\(gcd(n,m)\),那么一定不是好数. 所以,我们把\(n,m,q\)分别除以\(gcd(n,m)\),是不影响得出的"好数"数量的. 好,那么现在\(n,m\)就互质了. 现在,就把问题转化为了(用比较形象化的语言来说,就是)有\(n,m\)互质,求\([1,q]\)中有多少个…
Content 给定 \(T\) 个二次函数 \(y=ax^2+bx+c\),有若干次操作,有一个操作编号 \(p\),保证仅为以下这五种: 操作 \(1\):给定 \(k\),将函数图像向上移动 \(k\) 格(\(k<0\) 就是向下移动 \(-k\) 格). 操作 \(2\):给定 \(k\),将函数图像向右移动 \(k\) 格(\(k<0\) 就是向左移动 \(-k\) 格). 操作 \(3\):给定 \(k_1,k_2\),将函数图像关于点 \((k_1,k_2)\) 对称. 操作…
思路: 乱搞. 实现: #include <iostream> #include <cstdio> using namespace std; typedef long long ll; ll l, d, f; int t; ll gcd(ll x, ll y) { return !y ? x : gcd(y, x % y); } bool test(ll x, ll y, ll z) { return gcd(x, y) >= z; } int main() { cin &g…
题意 给出一棵 n 个点的树,每个点有黑白两种颜色.q 次询问,每次 询问给出 x 和 y,问能否选出一个 x 个点的联通子图,使得其中 黑点数目为 y. 范围 n ≤ 5000,q ≤ 10^5 其实证明我也不会没弄懂,只是听老师讲了,我们可以猜想:对于某一大小的连通子图,其包含黑点数的最小值与最大值之间的所有点数目都能够取得到. 证明:证明很简单,考虑从最小值一个个删除点并加入点到最大值的过 程,黑点个数每次最多变化 1,因此能遍历从最小值到最大值中 的所有点.(from dzy) 我们定义…
每日一题 day55 打卡 Analysis 这是我们一次考试的T1,但我忘了差分约束系统怎么写了,所以就直接输出Yes混了60分 首先转化题目: 1:表示农场 a 比农场 b 至少多种植了 c 个单位的作物.即a>=b+c 转化后为 b-a<=-c 2:表示农场 a 比农场 b 至多多种植了 c 个单位的作物.即a<=b+c 转化后为 a-b<=c 3:表示农场 a 与农场 b 种植数一样 即a=b 可以表示为 a-b<=0 与 b-a<=0 接下来就是判负环了 而为…
题意 判断是否存在一个序列 $ b_i $ 使得 $ \prod_{i = 1}^{n} b_i  | b_i^{a_i}$ 恒成立,其中 $ b_i $ 中的每个数都是2的正整数次幂. 样例输入 3 2 3 2 3 3 3 3 2 1 10 样例输出 YES YES NO 数据范围 对于 100% 的数据有 $ n \leq 10^5,a_i \leq 10,T \leq 10$ 解析 首先拿到这道题,考场一看就知道不是规律题就是数学公式题,事实上是的. 我们可以设 $ b_i=2^{x_i}…
题目传送 首先对两个数组排序. 然后预处理出数组p[i]表示b[x]<a[i]的最大的x. 然后我们设f[i][k]表示对于前i个派,我单独选出来k组a[y]>b[y].(即此时有k组a>b的匹配,其余还未匹配) 显然f[i][k]=f[i-1][k]+f[i-1][k-1]*(p[i]-(k-1)).等号右边的第一项相当于考虑a[i]不分配b,第二项相当于a[i]分配b. 这里还要注意一下f[0][0]=f[1][0]=f[2][0]=...=ff[n][0]=1的边界条件. 但是这个…
题目 分析 题目要求第i种颜色的最后一个珠子要在第i+1种颜色的最后一个珠子之前, 那么我们从小到大枚举做到第i种,把第i种的最后一颗珠子取出,将剩下的\(num(i)-1\)个珠子插入已排好的前i-1种中,再将取出的珠子放在最后一个. 每次求出将剩下的\(num(i)-1\)个珠子插入已排好的前i-1种中的方案数,将它乘以ans. 对于每个i的方案数可以用隔板问题来求. 但是,在比赛上,我忘了隔板问题,于是再枚举个j,将已经排好的珠子分成j份,将要放进去的的\(num(i)-1\)个珠子找出j…
题目描述 输入 输出 样例输入 3 2 2 1 样例输出 3 数据范围 样例解释 解法 先假定每种颜色的珠子取一个按顺序排列. 设这n个珠子就是每一种颜色的珠子的最后一个. 考虑逐个把珠子放入. 对于第i种颜色的珠子,计算有多少种摆放方式: 显然这种颜色最后的珠子前要放sum[i]-1个珠子,然后已放的有sum[i-1]个. 计算已放的珠子的位置有多少种方案,就等价于第i种珠子的摆放方案: 也即C(sum[i−1],sum[i]−1). 把所有颜色珠子的摆放方案乘起来即是答案. 代码 #incl…
题意: 标记为\(1-n\)的竹子,\(q\)个询问,每次给出\(l,r,x,y\).要求为砍区间\(l,r\)的柱子,要求砍\(y\)次把所有竹子砍完,每次砍的时候选一个高度,把比他高的都砍下来,并且这\(y\)次砍下来长度都相等,问第\(x\)次砍在什么高度. 思路: 显然就是要求选一个高度砍,使得剩下的高度为\((sum[r] - sum[l - 1]) - (sum[r] - sum[l - 1])/y * x\),那么直接建好主席树,然后二分出这个高度. 主席树好啊. 代码: #inc…
Code[VS] 2370 小机房的树 题解 RMQ 树链剖分 题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天,他们想爬到一个节点上去搞基,但是作为两只虫子,他们不想花费太多精力.已知从某个节点爬到其父亲节点要花费 c 的能量(从父亲节点爬到此节点也相同),他们想找出一条花费精力最短的路,以使得搞基的时候精力旺盛,他们找到你要你设计一个程序来找到这条路,要求你告诉他们最少需要花费多少精力 输…
题面:小A的柱状图 题解:无 代码: #include<cstdio> #include<cstring> #include<iostream> #define ll long long #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; inline ll rd(){ ll x=;char c=getchar(); '){c=getchar();} +c-'; c=getchar();} return…
目录 题目链接 题解 代码 题目链接 hihocoder#1513 : 小Hi的烦恼 题解 cdq 套cdq 套cdq 套cdq就完了呀 对每一科开n个bitset 表示该科目前i个有谁 每次查询都&起来就好了 代码 #include<cstdio> #include<bitset> #include<cstring> #include<algorithm> #define LL long long #define gc getchar() #def…