自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 2021-08-15

传送门题目大意题解A的概率aa+b\frac{a}{a+b}a+ba​B的概率ba+b\frac{b}{a+b}a+bb​a+b=1a+b=1a+b=1si=si−1+si−11+w(i−1)w=si−1+1+wi1+w(i−1)=(1+wi)as_i=s_{i-1} +\frac{s_{i-1}}{1+w(i-1)}w=s_{i-1} +\frac{1+wi}{1+w(i-1)}=(1+wi)asi​=si−1​+1+w(i−1)si−1​​w=si−1​+1+w(i−1)1+wi​=(1+

2021-08-15 16:43:40 85

原创 2021-08-08

传送门题目大意题解dijkstra算法先用dijkstra跑一遍正确答案,再用错误代码跑一遍,对比得出答案。但错误算法的复杂度为O(n3)O(n^3)O(n3),所以需要优化1:只找需要的处理2:当正确答案是无穷大时不处理优化后复杂度为O(n2+nm)O(n^2+nm)O(n2+nm)code#include<bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;int w[2010][2010];vec

2021-08-08 14:10:46 79

原创 2021牛客暑期多校训练营5 G-Greater Integer, Better LCM

传送门题目大意code#include<bits/stdc++.h>using namespace std; #define ll __int128ll fa[1<<18],fb[1<<18];int p[20],q[20];ll a,b;int n;ll read(){ ll sum=0; char c=getchar(); while(c<'0'||c>'9') c=getchar(); while(c>='0'&a

2021-08-04 20:58:36 120

原创 2021牛客暑期多校训练营5 C-Cheating and Stealing

传送门题目大意题解code#include<bits/stdc++.h>#define ll long long#define mod 998244353using namespace std;const int maxn=1e6+10;int n;char s[maxn];int cntl,cntw;int posl[maxn],posw[maxn];int l[maxn],w[maxn];int nxt[maxn];int main () { int i,

2021-08-04 15:49:51 127

原创 2021牛客暑期多校训练营4 H-Convolution

传送门题目大意题解由题意得x⊗y=2xygcd(x,y)2x⊗y=\frac{2xy}{gcd(x,y)^2}x⊗y=gcd(x,y)22xy​​所以bi=∑1≤j,k≤n,jkgcd(j,k)2=iajkcb_i= \sum\limits_{1≤j,k≤n,\frac{jk}{gcd(j,k)^2}=i}a_j k^cbi​=1≤j,k≤n,gcd(j,k)2jk​=i∑​aj​kc设 g=gcd(j,k),x=jg,y=kgg=gcd(j,k),x=\frac{j}{g},y=\frac{

2021-07-28 20:56:35 54

原创 2021牛客暑期多校训练营4 G-Product

传送门题目大意给定三个整数 n,k,D(1≤n,k≤50,0≤D≤108)n,k,D(1≤n,k≤50,0≤D≤10^8)n,k,D(1≤n,k≤50,0≤D≤108)定义非负整数序列aaa的权值为D!∏i=1n(ai+k)!\frac{D!}{\prod\limits_{i=1}^{n}(a_i+k)!}i=1∏n​(ai​+k)!D!​​求所有满足以下条件的非负整数序列aaa的权值和:1.∀∈[1,n],ai≥0\forall\in[1,n],a_i \ge 0∀∈[1,n],ai​≥0

2021-07-28 16:29:01 164

原创 2021牛客暑期多校训练营4 B-Sample Game

传送门题解

2021-07-28 13:42:55 82

原创 2021牛客暑期多校训练营3 E-Math

传送门题解设k(xy+1)=x2+y2k ( x y + 1 ) = x^2 + y^2k(xy+1)=x2+y2根据韦达定理可得(x,kx-y)是一组解,且k为平方数不难发现当y=x3y =x^3y=x3时,( x , y ) (x,y)(x,y)满足条件且此时k=x2k = x^ 2k=x2所以我们只要枚举第一组解(x,x3)(x,x^3)(x,x3)并根据上述关系式进一步计算更多的解即可。代码#include<bits/stdc++.h>using namespace st

2021-07-25 15:09:55 82

原创 2021牛客暑期多校训练营2 K-Stack

传送门题目大意懒得写思路倒退由B数组推A数组当栈中的元素数量 n<bi<b_i<bi​时,对栈中的数字进行补充。存在多种情况,可以将当前栈顶元素放在:1、上一步放置的位置之后2、上一步放置位置之前 bib_ibi​ 为111处(上一步放置位置之后已有数字)同时, bbb数组也存在多种情况,比较简单的情况:当bib_ibi​ 的值未确定时,bi=bi−1+1b_i=b_{i-1}+1bi​=bi−1​+1若b数组不合理,bib_ibi​的最大值为iii,所以当pi<

2021-07-20 14:45:45 73

原创 2021牛客暑期多校训练营2 F-Girlfriend

#include<bits/stdc++.h>using namespace std;const double pai=acos(-1);int x[5],y[5],z[5],k[5];//A,B,C,D各自的x,y,z double xx[5],yy[5],zz[5],r[5];//两个球各自的x,y,z和各自的半径r void get()//计算两个球的数据 { int i,j,tot; double kk,sum; for(i=1;i<=2;i++) { to

2021-07-19 21:08:16 117

原创 2021牛客暑期多校训练营1K-Knowledge Test about Match

传送门#include<bits/stdc++.h>using namespace std;int T,n,b[1010],c[1010];int main(){ cin>>T; while(T--){ scanf("%d",&n); memset(b,0,sizeof(b)),memset(c,0,sizeof(c)); int p,u=0; for(int i=0;i<n;i++)scanf("%d",&p),c[p]++,b[

2021-07-18 20:03:13 150

原创 2021牛客暑期多校训练营1 G-Game of Swapping Numbers

传送门题目大意:给定序列 A,B,需要交换恰好 k 次 A 中两个不同的数,使得A,B 每个位置的绝对差值和最大。N<=100000题解:贪心核心思想:2*( min⁡(Aj,Bj)\min (A_j,B_j)min(Aj​,Bj​)-max⁡(Ai,Bi)\max(A_i,B_i)max(Ai​,Bi​))代码:#include<bits/stdc++.h>using namespace std;int n,m,k;int a[500010],b[500010];

2021-07-18 19:54:41 137

原创 2021牛客暑期多校训练营1 I-Increasing Subsequence

传送门题目大意Alice和Bob在一个大小为 n ( 1 ≤ n ≤ 5000 )的排列P上玩游戏,双方轮流选择数字。每一轮中,当前玩家需要选择一个比之前双方选择过的元素都大的元素。并且若该玩家之前选择了PiP_iPi​,当前回合选择了 PjP_jPj​,则必须满足j>i 。若有多种选择,则将等概率的随机选择一个合法的元素。第一回合的玩家会随机选择一个元素,第二回合会随机选择一个比第一回合选择的数字大的元素。没有合法操作时结束游戏。求游戏结束时,双方的总游戏回合数期望,答案对 998244

2021-07-18 15:10:39 210 1

原创 2021牛客暑期多校训练营1 H Hash Function

传送门暴力,没话说出题人良心:)#include<bits/stdc++.h>using namespace std;bool aa[500010];int n,a[500010];int main(){ int i,j; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; aa[a[i]]=true; } sort(a+1,a+n+1); f

2021-07-17 20:29:57 225

原创 2021牛客暑期多校训练营1 A Alice and Bob

本来这是一道博弈论的题,考虑必胜态和必败态但是!暴力居然能过!只要用bool就可以了!出题人良心!#include<bits/stdc++.h>using namespace std;int n,m;bool a[7010][7010];void inti(){ int i,j,k,v; memset(a,0,sizeof(a)); for(i=0;i<=5000;i++) for(j=0;j<=5000;j++) if(!a[i][j]).

2021-07-17 20:06:07 115

原创 刷墙工

传送门题目描述欣君在粉刷一面墙,他对墙的粉刷并不是规矩的逐行粉刷或者逐列粉刷,而是漫无目的地随机刷一行或者刷一列,他相信经过这种奇妙的涂刷之后墙面会变得独特而美丽,每次给一整行或者一整列的格子刷上一种颜色后,颜色会覆盖之前刷的颜色,问最后每个格子的颜色。初始所有格子的颜色都为 0 。输入第一行 n,m,k 表示墙的长宽和粉刷的次数接下来k行每行包括三个数字p,l,c,分别表示刷墙的方式,刷墙的位置和刷墙用的颜色,p=1表示把第l行墙刷成c颜色,p=2表示把第l列墙刷成c颜色输出每一小块墙的颜色

2020-08-15 12:35:20 300

原创 Decrement on the Tree

我们发现有几次操作就是覆盖几条路径,所以我们只要关注路径的起点和终点,路径数就是起点终点的数量和的一半如果有一边的权值很大,超过了其他所有边的权值和,必然会出现某条边非常多的情况,起点和终点的数量就为这条边的数量乘2 。代码:#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int n,m;int x[N],y[N];long long w[N],v[N];multiset<long long,gr.

2020-08-11 15:03:23 159

原创 Hearthstone Battlegrounds

题目描述:注意:本题中描述与真实战棋大不不同。xtq非常喜欢玩酒馆战棋,他注意到很多情况在后期下只有鱼人才能击败鱼人。所以他想知道如果他和对手都使用鱼人流,他什么时候才能获胜。为了简化该问题,规定现在只有四种鱼人:1/10^9,带剧毒圣盾亡语;1/10^9,带剧毒圣盾;1/10^9,带剧毒亡语;1/10^9,带剧毒。(注:x/y表示x攻击力和y血量)攻击效果:当一个x_1/y_1的随从攻击一个x_2/y_2的随从(假定两者都没有圣盾和剧毒),则y_1变为y_1-x_2,y_2变为y_2-x_

2020-08-11 13:09:37 217

原创 2020-08-09

#include<bits/stdc++.h>#define ll long longusing namespace std;const int MAXN=1e5+10;const int MOD=998244353;const int mod=MOD-1;ll ksm(ll a,ll b){ ll ret=1; while(b) { if(b&1)ret=ret*a%MOD; a=a*a%MOD,b>>=1; } return ret;...

2020-08-09 20:36:47 105

原创 Groundhog Looking Dowdy

由于要最小化最大值和最小值的差值,因此我们可以把所有衣服按照dowdiness从小到大排个序。排序之后,设最终选出的m件衣服最小覆盖区间为[L,R],则答案为downdiness[R]-downdiness[L]则一个合法的区间至少需要包含m种不同的日期可以对于每个L求出最小的合法的R,这就转化为一个简单的动态窗口问题了。#include<bits/stdc++.h>using namespace std;struct node{ int v; int h;}a.

2020-08-08 20:01:15 93

原创 A Groundhog and 2-Power Representation

因为数字很大,所以要用高精度。由题意可得,“(”与“)”相配对,永远满足数量相等若在字符串中找到了一个′2′:若下一个字符是′(′ ,则进行递归否则直接在答案上加上2递归:若遇到左括号,h++若遇到右括号,h−−如果h=0时,则已经完成了一串2,快速幂得出答案并累加,退出递归#include<bits/stdc++.h>using namespace std;string s;int n,m,x,y,z,flag;int ans[200],a[200];void a.

2020-08-08 19:16:01 96

原创 Interesting Computer Game

把不同的数当成图中的点。二元组 (ai,b) 当成是一条边。#include <bits/stdc++.h>using namespace std;const int N=2e5+10;int T,n,cas,sz[N],f[N];int find(int x){ return x==f[x]?x:f[x]=find(f[x]);}int main(){ scanf("%d",&T); while(T--){ scanf("%d.

2020-08-04 16:59:08 105

原创 Kabaleo Lite

b[1]就是最大顾客数量。然后求盈利的前缀和,从大到小取即可。在取盈利的过程中记录用掉的份数以及最小份数的下标,不断前移即可。但是,这题要用高精度,因为会爆long long;用long double也能过#include<bits/stdc++.h>using namespace std;int t,n;long double ans;struct node{ long long m; long double l;}c[1000001];long lon.

2020-08-04 15:51:24 112

原创 G Topo Counting

Now we start to describe a kind of directed graph called the Drying Rack Graph (DRG) with a parameter N.A DRG contains N groups of vertexes. The i-th group ViV^iVi contains 2N vertices: V1i,V2i,⋯ ,V2NiV^i_1, V^i_2, \cdots, V^i_{2N}V1i​,V2i​,⋯,V2Ni​.There

2020-08-02 20:23:41 128

原创 Valuable Forests

AC代码:#include<bits/stdc++.h>using namespace std;int n;int t,mod;int num[100010];int a[100010],st[5010];int C[5010][5010],A[5010],F[5010],f[5010];int fastpow(int x,int a){ int ans=1; for (; a; x=1ll*x*x%mod,a>>=1) if (..

2020-08-02 16:57:30 136

原创 2020牛客暑期多校训练营(第六场)Binary Vector

#include<bits/stdc++.h>using namespace std;long long mod=1e9+7;long long m=2,ff[20000055];long long f,p=500000004,pp=500000004;int main(){ f=ff[1]=p; for (int i=2; i<=20000050; i++) { m=m*2%mod; pp=pp*p%mod; .

2020-07-28 20:36:35 117 1

原创 2020牛客暑期多校训练营(第六场)Grid Coloring

给nn nn的网格图边染 k种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构造不存在环及整行列方案 种色,每染的边数相同构.

2020-07-28 19:19:18 70

原创 2020牛客暑期多校训练营(第六场)

官方题解思路对于一个部分k-bag序列,一定存在一个α满足:对于任意整数y都有[gk+ a, gk+公+k-1]这一段区间里所有的数都不相等(这个区间可能不被[1,n]完全包含,此时指它和[1,n]的交);并且可以限制α取0到k一1之间的某个整数。容易发现只要上面的条件也是充要的。定义pre;表示最大的满足ap= ai;p<i的p,如果不存在则未定义。对于一个有定义的pre:对α取值的限制为:存在一个值 j 满足 j mod k=a且 pre≤j<i;由此合法的α将是某一段或某两.

2020-07-28 13:39:04 131

原创 2020牛客暑期多校训练营(第五场) A Portal

题目描述You are now in a big factory. The factory could be recognized as a graph with n vertices and m edges. Every edge has its length. You have k missions to do. The i-th mission is going to vertex a_iai​ , picking a block and then sending it to vertex b

2020-07-26 14:39:04 199

原创 2020牛客暑期多校训练营(第五场)D Drop Voicing

我们将模型转换成有一个圆盘,圆盘上有n个位置,且有一个指针(初始时指针指向原 来的最后一个元素) 连续若干次操作1等价为改变指针指向的数所处的位置连续若干次操作,连续若干次操作2等价为改变指针的位置。容易观察到,我们只需要取环上最长的一个上升子序列,然后调整其它数,即可得到答案上代码#include<bits/stdc++.h>using namespace std;int n,q;int a[505],dp[505];int main(){ int i,j,k,ans=.

2020-07-25 20:45:44 96

原创 2020牛客暑期多校训练营(第五场)E Bogo Sort

题目:Today Tonnnny the monkey learned a new algorithm called Bogo Sort. The teacher gave Tonnnny the code of Bogo sort:bool is_sorted(int a[], int n) {for (int i = 1; i < n; i++) {if (a[i] < a[i - 1]) {return false;}}return true;}void bogo_s

2020-07-25 20:13:27 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除