首页 > TAG信息列表 > 1LL

stack(计蒜客信息学 8 月提高组模拟赛)

C.stack 原题链接 本问题是使用栈跳出开头是1的操作序列方案数 考虑⼀个合法的输出时如何产生的,因为开头必须为1,先指定开头的元素,将这个元素前面的元素都先放⼊栈中。 把问题转化成一个栈中已经存在一定元素求出栈序列个数。假设这个元素为第i个,那么1~i-1在栈中,1+i~n在队列中。就

NOIP 模拟赛 长寿花 题解

NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同。 相邻两层颜色集合不能相同。 求方案数 \(\pmod p\) \(n,m\le 10^6,a_i\le 5000,\sum_{i=1}^n a_i\le 10^7,p\le 10^9\) sol 由于

数论----快速幂

   算法:   1 int qmi(int a, int b, int mod) 2 { 3 //答案 4 int res = 1; 5 //乘数 6 int mul = a; 7 while (b) 8 { 9 //在二进制下b的第0位是否是1 10 //是1则要乘,否则不要 11 if (b & 1) 12 res

2021 icpc 济南站C Optimal Strategy

problem 一个长度为n的数组a,两个人轮流取,想让自己的拿的总和尽量大,都有最优策略,问有几种拿取的方案数。 solution 赛场上做出来了,现在会看又不会了。 先手和后手的最后拿的棋子是定的。 当最大的数出现了奇数次,先手必须要拿这个最大的,不然的话,本来是先手拿x+1个,后手拿x个,现在成了

[游记]2022年多校冲刺NOIP联训测试8-2022.7.30

这次好像也不错qwq A. 序列 B. 任意模数快速插值 C. 快递 D. 任意模数多项式乘法逆 A. 序列 一眼题面:这不是在模拟更相减损么 然后发现的确是,所以飞快地过了   #include<cstdio> #include<cstring> #include<string> #define int long long #define WR WinterRain using namesp

2022.7.19 AGC051D

AGC051D C4 考虑给每条边定向,然后就是欧拉回路计数,套 \(\text{best}\) 定理即可。 #include<bits/stdc++.h> using namespace std; #define inf 1e9 const int maxn=1e6+10; const int mod=998244353; inline int read(){ int x=0,f=1;char c=getchar(); while(c<'0'||c>

模板——多项式

多项式乘法 #include<bits/stdc++.h> using namespace std; const int N=(1<<18),P=998244353,G[2]={3,(P+1)/3}; int rv[N],gp[2][N],iv[N]; inline int fpw(int a,int x){ int s=1; for(;x;x>>=1,a=1ll*a*a%P) if(x&1) s=1ll*s*a%P; return s;

A层邀请赛3

日常垫底,赛个球 A. 玩个球 组合数\(DP\),搞了个傻逼性质在那乱转移,结果还是只有\(n == 2\)的分,有趣的是中间交的一份码过了\(n == 3\)的,但是不是最后一次提交。。 正解 \(dp[i][j]\)表示放了\(i\)个白球,有\(j\)个颜色放完的方案数,主要思想在枚举剩余位置的第一个放啥 考虑放白球,直

暑期多校

2022.7.18 牛客 A 队友写的 D 高中数学( 考虑弦长最大的时候,弧长最大。 于是画画图就会发现其实那个弦长最大的时候是$O$和$Q$共线 然后连一下$O$和$A$跟$B$,数学推导一下弦长,再通过弦长反推圆心角大小就好了。 记得别写反$arcsin$和$arccos$ #include <bits/stdc++.h> using name

codeforces E - Selling Souvenirs

  #记录一下自己一步一步跳进去的坑 1.比如说还在纠结为什么w明明不会太大为什么开longlong 因为不开的话这边会爆掉阿:    return a.c*b.w>b.c*a.w; 2.比如说我的做法是把性价比排序,然后直接贪心选,剩下的再dp,同时卡一下边界 but一直卡不过去,开大了过不去T,开小了同样过不去wa

2022.7.14 模拟赛

目录2022.7.14 模拟赛数独分糖果维修机器人小乔 2022.7.14 模拟赛 \(\to\text{link}\leftarrow\) 数独 思路: 大模拟 \(40min\) 写完调完,难度一般般 #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(c

luogu P4357 [CQOI2016]K 远点对

题面传送门 KDT还可以做领域查询!只不过复杂度可以卡到单次\(O(n)\) 我们开一个小根堆维护答案,之后将每次答案与堆顶比较。如果答案比堆顶小就加入答案。 我们建立一颗KDT,然后每次计算每个点和当前矩形四个边框中最大的距离,如果这个距离大于当前堆顶,那么直接返回。否则继续递归下去

「BJOI2019」勘破神机

Description 设 \(F_n\) 表示用 \(1\times 2\) 的骨牌填满 \(2\times n\) 的矩阵的方案数,\(G_n\) 表示用 \(1\times 2\) 的骨牌填满 \(3\times n\) 的矩阵的方案数。给出 \(l,r,k\),分别求出: \[\frac{1}{r-l+1}\sum_{n=l}^r\binom{F_n}{k} \] \[\frac{1}{r-l+1}\sum_{n=l}^r\binom{

拉格朗日反演学习及其应用

拉格朗日反演 多项式复合:\(F(G(x))=x\),则称\(F(x)\)与\(G(x)\)互为复合逆 存在条件:\([x^0]F(x)=0\),\([x^1]F(x)\ne 0\) 拉格朗日反演: \([x^n]G(x)=\frac{1}{n}[x^{-1}](\frac{1}{F(x)})^n\) 但由于\([x^0]F(x)=0\)无法求逆,所以更通用的是:\([x^n]G(x)=\frac{1}{n}[x^{n-1}](\frac

题解-AGC016F

早期 AGC 的难度确实虚高(但 F 也不是我这种菜鸡能够挑战)。 #include<bits/stdc++.h> using namespace std; const int mod=1e9+7; int n,m,pw[225],g[20][20],cnt[1<<16][20],f[1<<16]; int lowbit(int s){return s&-s;} int main(){ scanf("%d%d",&n,&m)

多项式工业基础与全家桶

多项式工业基础与全家桶 开坑待填,放个常数巨大的板子先 #define Maxn 200005 #define mod 998244353 inline int ksm(int x,int y=mod-2) { int ret=1; for(;y;y>>=1,x=1ll*x*x%mod) if(y&1) ret=1ll*ret*x%mod; return ret; } const int G=3,invG=ksm(3,mod-2); int tr[Maxn<<

CTS2019D1T1 随机立方体

做题时:难题啊,我不会啊 看题解:woc,简单题啊,我咋不会啊 讲一下卡住的步骤吧,就是在钦定了极大值的位置和选完数之后,如何算一个类似于十字架的方案。 我们考虑最大值,好的,我们递归到了一个子问题,做完了。 CTS2019 都是些什么神仙题啊! #include<bits/stdc++.h> using namespace std; #def

[COCI2012-2013#6] JEDAN

洛谷题面 题目大意 有 \(n\) 个数排成一行(数值代表高度),最初所有的数都为零,你可以选择连续的一段等高的数,将它们都增加 \(1\)(除了开头和结尾那个数)如下图表示了两次操作: 现在有一些数字看不清了,我们用 \(-1\) 表示,请你根据留下的数字,推出有多少种可能的方案。使得留下的数字

蓝桥杯练习1176

文章目录 1176:遍历 1176:遍历 遍历 题意:给定N个点的图,求经过指定M个点的路径,使路径最短 思路: 修改floyd,确保floyd下M个点不会为中间dp节点。得到M个点间的距离。 题目转化为已知M个点之间的距离,求遍历这M个点的顺序使路径最小。 d

x的平方根

这个题虽然是简单题,但还是踩了蛮多坑的。这题一开始,一看我还以为是浮点数二分,最后答案是整数,其实用的是整数二分。 1.整数二分,浮点数二分的判定,看答案是否位整数,或浮点数。 2.这题有两处要防止越界,第二个坑点。 第一个是求mid的时候(l+r+1)可能越界,mid*mid可能越界 3.这题要求

【SPOJ】32952 ADAFTBLL(树上带修莫队)

原题链接 题意 给定一棵 \(n\) 个点的数,每个点都有一个权值。给出 \(q\) 次操作,有两种操作类型。 \(1.\) 给出 \(x\) 和 \(y\),将点 \(x\) 的权值修改为 \(y\)。 \(2.\) 给出点 \(u\) 和 \(v\),令 \(s\) 表示每一种从 \(u\) 号节点到 \(v\) 号节点出现的权值的次数,输出 \(\sum \dfra

0101 a^b 快速幂

描述 求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9 输入格式 三个用空格隔开的整数a,b和p。 输出格式 一个整数,表示a^b mod p的值。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 int a,b,p; 5 ll quipow(int a,int b) 6 { 7 ll

【Codeforces Round #166 (Div. 2)】D. Good Substrings【哈希】

解题思路 以b的个数为关键字,做一个前缀和,然后枚举区间左右端点,i,j,a[j]-a[i-1]如果<=k,说明这段字符是合法的,但是考虑到要求重,要先做一个哈希预处理 base[0]=1ll; for(int i=1;i<=len;i++) { h[i]=(h[i-1]*p*1ll+(s[i]-'a'+1ll)); base[i]=(base[i-1]*p*1ll); } 然

Codeforces 868G - El Toll Caves

Codeforces 题面传送门 & 洛谷题面传送门 神仙题。 首先我们每次肯定会按 \(1\sim k\)​,\(k+1\sim 2k\)​,\(2k+1\sim 3k\)​ 的顺序选择勘测的洞穴,显然如果出现两个洞穴在某一时刻被勘测次数差 \(\ge 2\)​ 那肯定是不优的,这个感性理解一下即可。 那么我们假设 \(E_i\)​​​ 为在

【LuoguP5850】calc加强版

【LuoguP5850】calc加强版 by AmanoKumiko Description 对于\(n=1,2,3 ... m\),求出所有合法序列的权值 其中,合法的定义为每个元素都为\([1,k]\)中的整数,同时每个元素都不相同 同时,权值为所有元素的乘积 两个序列不同当且仅当他们任意一位不一样。 对\(998244353\)取模 Input 一行