自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 清北数论——济南day1上

1.高精加减乘除列个竖式模拟下就行用字符读入,then用int数组倒序存;负数的话转换一下高精除主要是考 高精除以单精2.模意义下运算3.快速幂a^b = a^(b/2)* a^(b/2) =(a^(b/2)) ^2;if(b%2==1) a^b= a^(b/2)* a^(b/2)*a;long long tmp=1;while(b){ if(b%2==1) tmp=t...

2019-04-04 19:19:54 490

原创 修复道路

题目传送门sx从小到大排序并查集来连接连通块,每连接一个总量减一,直到减为一,输出#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int N=100010;int n,m,s,fa[N];struct st{ int x,y,t...

2019-05-10 17:00:33 175

原创 高精度乘法

#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[2010],b[2010];int x[2010],y[2010],ans[2050];int main(){ cin>>a>>b; int len1=strl...

2019-05-10 15:43:44 145

原创 bzoj疯狂的馒头

题目传送门sx最后染色的馒头一定不会再被更改,所以倒着来染色;用并查集来维护染了的区间,直接跳到祖先因为染色是连续的点,把染了色的点的祖先设成右端点;在区间内逐个染色,如果该点被染色,就把指针直接跳到该点的祖先;如果跳到的祖先超出了r,别忘了跳出循环注意左端点小于等右端点#include <iostream>#include <cstdio>using n...

2019-05-10 15:40:10 171

原创 [JSOI2008]星球大战

题目传送门sx用并查集来做;因为并查集只能连边,而不能删,所以倒过来做;先记下每条边两边的点,正反向连边;把该摧毁的星球摧毁,剩下n-k个独立点(互不连通),然后一个一个往上连边合并;如果边的两端点星球都没有被摧毁,就合并祖先,每合并一个,连通块数减一;然后从k到1进行合并,每合并一个就减一,#include <iostream>#include <cstdio&...

2019-05-10 15:32:48 369 1

原创 国王游戏

题目传送门sx设任意两个相邻的大臣数字为a[i],b[i],a[j],b[j];推导推导可得出按a*b从小到大排序是最优的;写高精 恶心#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;cons...

2019-05-09 17:39:12 440

原创 清北——dwarf tower

正向扫一遍,再反向扫一遍;正向扫的过程中,后面的不断被更改,但扫过去的数无法被后面的改了的数再改,所以在反向来一遍;因为正向时最后一个一定是最优的,再用最优的不断往前扫所有也都是最优的#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m,an...

2019-05-09 17:33:56 270

原创 清北——第k小数(number)

把两个序列排序,知道最大的数和最小的数,在范围内二分答案;如果小于mid的数大于等于k个,说明mid太大;反之,mid太小;#include <iostream>#include <cstdio>#include <algorithm>#define LL long longusing namespace std;const int N=2e5+...

2019-05-09 17:27:48 301

原创 清北——列车调度(manage)

本题求最长上升子序列#include <iostream>#include <cstdio>using namespace std;int n,st[100010],ans;int main(){ freopen("manage.in","r",stdin); freopen("manage.out","w",stdout); cin>>n;...

2019-05-09 17:23:13 221

原创 清北——三角形(trokuti)

任意三条斜率不同的直线都可以组成三角形;用结构体数组存下a[i],b[i];按a[i]升序排列;记录同为一个斜率的直线条数num[i];多少种斜率 mans=在n条中任意选三条方案数 - 一种斜率中用了两条,在其他种直线中任选一条方案数-同一斜率用了三条直线方案数#include <iostream>#include <cstdio>#include &lt...

2019-05-09 17:21:30 134

原创 清北——传球接力(pass)

一个人只会把球传给一个人找连通块,找环;一个连通块内只有一个环;球传到环内才会终止;最大传球距离,一个环加上从环中的一个点出发的被传过来的距离;枚举取最大把入度为零的点存入队列中,开始向中间走,不断更新到被传球的人的最大传球距离,当前的人所传球的人入度–;如果入度等于零了,就入队;处于环中的点入度必定不为零;找入度不为零的点,开始答案#include <iostream&g...

2019-05-09 17:07:00 226

原创 清北——业务办理(transact)

贪心假设d[i]<d[j]当i排在j前面时 ans=max(两个人不满意度)j排在i前 ans=max()可以看出 j排在i前的答案要比i排在j前的答案大,但我们要取小的,所以当 d[i]<d[j] 时,i排在j前面最优;所以把n个d[i]从小到大排序,找最大的就行了#include <iostream>#include <cstdio>#in...

2019-05-09 16:56:21 134

原创 清北——序(sort)

本题就是求最长上升子序列#include <iostream>using namespace std; int i,j,n,s,t,a[100001];int main(){ freopen("sort.in","r",stdin); freopen("sort.out","w",stdout); cin>>n; a[0]=-1000000;...

2019-05-09 16:42:56 107

原创 清北——迷(enc)

本体模拟一下就好,数据有个坑英文二十六个字母,他给了二十五个对应,那么最后一个字母也就相应的对应了#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[1010],b[1010],c[1010],f[100];int d[100],num;...

2019-05-09 16:41:38 107

原创 清北——运(lucky)

本题特点 幸运数的个数非常少,打暴力算一算在题目范围中是1022个;用dp递推,dp[i][j]表示用前i个幸运数排成长度j的序列所得方案数;dp[i][j]=dp[i-1][j](前i-1个数组成j的方案数,也就是不用第i个)+b[i]*dp[i-1][j-1];b[i]表示第i个幸运数在序列中出现的次数;一共有k个数,其中i个数用非幸运数,k-i个用幸运数,用排列组合求得用非幸运数的方...

2019-05-09 16:30:30 151

原创 清北——游 (tour)

n-1条边,是一棵树,那么为了使每一个树枝全都遍历一遍,走到一个树枝尾巴时必须要倒回到树干走起他树枝,那么一个树枝要走两遍,但最后一条树枝走完就不用倒回去了,所以是所有边权和的二倍减去最后一条树枝;要使答案最小,使最后走的树枝最长就可以了。求单源最长路,用dijkstra堆优化就可以了#include <iostream>#include <cstdio>#i...

2019-05-09 15:45:03 157

原创 清北——算(sum)

本题用等比数列求和公式Sn=(a1(qn -1))/(q-1);用乘法逆元求除法意义上的取模运算快速幂计算;#include <iostream>#include <cstdio>#define LL long longusing namespace std;const LL MOD=1e9+7;LL n,m,ans;LL ksm(LL x,LL y)...

2019-05-09 15:37:11 158

原创 队列安排

题目传送门sxynla记录每个人左右相邻的两个人,zuo数组和 you 数组#include <iostream>#include <cstdio>using namespace std;const int N=100010;int n,zuo[N],you[N],tou,m;bool vis[N];int main(){ cin>>n;to...

2019-05-04 10:40:34 155

原创 最大子段和

题目传送门sxynla维护一个非负的前缀和sum,如果sum<0,则 令sum=0;sum+=a; 取过程中最大的即为答案;代码#include <iostream>#include <cstdio>using namespace std;int sum,n,a,ans=-1e9;int main(){ scanf("%d",&n); w...

2019-05-03 17:47:29 173

原创 马的遍历

题目传送门sx搜一下注意输出格式#include <iostream>#include <cstdio>using namespace std;int n,m,s,t,ans[410][410],bushu[100000];bool vis[410][410];int tiao[8][2]={{2,1},{1,2},{-1,2},{-2,1},{-2,-1}...

2019-04-30 11:36:29 140

原创 小B的询问(莫队)

题目传送门rzcrxx大佬的博客,里面莫队算法很详细;本题要么是+(2n+1),要么是+(-2n+1)(n+1)2=n2+2n+1;(n-1)2=n2-2n+1;代码#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>using names...

2019-04-28 16:42:38 92

原创 高斯消元法

题目传送门sx高斯消元原理x+2y+3z=11①2x+y+4z=11②3x+4y+z=19③⑴用①式分别把②③式中的x消去;再用②式把③式中的y消去;⑵得到的③式可直接得到z的值;然后再把z带到②式,得到y;再把y,z带到①式;⑴x+2y+3z=11①-3y-2z=-11②-20/3z=-20/3(懒得弄分数了)⑵回带,解得x=2,y=3,z=1;放到代码中用...

2019-04-10 17:34:07 130

原创 矩阵快速幂

题目传送门sx多个方阵乘起来,如果一个一个乘那就太慢了,可以用类似乘法运算的快速幂。void ksm(){ for(int i=1;i<=n;i++) ans.a[i][i]=1; while(k){ if(k%2) ans=ans*g; g=g*g; k/=2; }}这里的乘号重载了struct st{ LL a[11][11];}g,ans;st...

2019-04-10 17:04:00 88

原创 校门外的树

题目传送门sx本题可用差分思想O(n);这里就不再说差分了;#include <iostream>#include <cstdio>using namespace std;int l,m,k[10002],ans,g[10001];int main(){ scanf("%d%d",&l,&m); while(m--){ int a,b...

2019-04-10 16:43:23 137

原创 反素数 Antiprime

题目传送门loj一个数质因子个数最多有十个(我也不造为啥哈)如果当前数的质因子个数与你储存的数的质因子个数相等,那么应该留下较小的数(这个大的数就不是A数了)枚举一下每个质因子的范围代码#include <iostream>#include <cstdio>#define LL long longusing namespace std;LL n,ans,s...

2019-04-02 11:24:53 229

原创 Prime Distance

题目传送门sxazr本题由于题中所给的L和R过大,无法直接用数组储存,那么可以把L到R之间的数减去L再做标记,判断时也减L就行;代码#include <iostream>#include <cstdio>#include <cstring>using namespace std;bool v[1000001];int a[100001],m,l,...

2019-04-02 10:58:01 1568

原创 (noip2013)转圈游戏

题目传送门sxazr先找一下x号同学再次回到第x号需要多少次,把每次的位置记下来,10^k%次数,输出就好了代码#include <iostream>#include <cstdio>#define LL long longusing namespace std;LL n,m,k,x,ans[100001],g,s;LL zr(int x){ LL t...

2019-03-31 14:09:03 274

原创 [HNOI2008]越狱

题目传送门sxazr先不考虑越狱 ,n个犯人,有m种宗教,则共有m^n种组合;把不能越狱的组合减去就好了;第一个人有m种宗教选择,第二个人就必须在剩下的m-1种里选一种;第三个人呢,因为第二个人选了一种宗教,那么他也是在剩下的m-1种里选一种,只要保证相邻的两个不一样就可以嘛,则有m*(m-1)^(n-1);可以越狱的就有m^n -m*(m-1)^(n-1);快速幂代码#incl...

2019-03-31 14:01:09 160

原创 城堡 The Castle(uscao)

题目传送门sxazr本体真的是因为细节问题花费了我将近两个小时的光阴啊认真,仔细!找连通块,每找完一个连通块把连通块内的每个方格标记上该连通块的序号,( 在后面拆墙时判断是否在一个连通块里)记录最大的连通块;枚举每个方格,拆墙(这里只枚举上面的墙和左面的墙就可以),记录最好的拆墙位置;注意多解时选择输出那个;输出有多少个连通块;代码#include <iostream&gt...

2019-03-31 09:10:29 203

原创 母亲的牛奶 Mother's Milk(usaco)

题目传送门sxazr本题暴力搜索就可以如果当前a,b,c组合出现过,就返回;排序输出答案;搜啊搜代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int A,B,C,s,ans[1000001];bool fa[21],fb[21],f...

2019-03-24 17:19:34 780

原创 借教室(noip2012)

题目传送门sxazr二分枚举答案(因为数据范围比较大);差分来进行修改操作(不会差分的话先学下差分)代码#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1e6+1;int n,m,r[N],d[N],s[N],t[N],c...

2019-03-24 16:47:21 122

原创 欧稳欧再次学车(洛谷三月月赛2)

题目传送门sxazr本题就暴力模拟一下别忘了特判代码#include <iostream>#include <cstdio>#define LL long longusing namespace std;LL t,n,l,r,x,k;LL nd,spd,s,ans; // nd当前档位;spd当前速度;s记录是否达到k次;ans结果bool q;int...

2019-03-24 16:23:55 146

原创 (usaco)牛式 Prime Cryptarithm

题目传送门sxazr本题读懂题意就好了;判断一下乘出来的数位数是否符合;判断一下数中是否由输入中给出的数组成;暴力枚举啦代码#include <iostream>#include <cstdio>using namespace std;int ans,n,a[10];bool q(int x){ while(x) { if(!a[x%10])...

2019-03-24 16:16:37 199

原创 (usaco)修理牛棚 Barn Repair

题目传送门sxazr本题可以这样想我这蒟蒻没想出一条超长木板把所有牛棚覆盖,然后从中截去m-1段,就剩下m段了;这样就可以简单的贪心了;把每个有牛的牛棚之间的距离从大到小排序;截去最大的m-1个就好了。代码#include <iostream>#include <cstdio>#include <algorithm>using namespa...

2019-03-24 11:33:21 286

原创 (usaco)双重回文数Dual Palindromes

题目传送门sxazr从题中s+1开始枚举,判断每个数#include <iostream>#include <cstdio>using namespace std;int n,s,k,q;void zr(int x,int y){ int a[100001],s=0; while(x){ a[++s]=x%y; x/=y; } if(a[1]=...

2019-03-21 21:35:17 210

原创 蚂蚁

题目传送门sxazr本题可以这样想,两只蚂蚁相撞时,不是返回,而是穿了过去(或者说两只蚂蚁交换了),那么所有的蚂蚁的终止位置就知道了即 a[i]+t或a[i]-t (根据朝向来判断加减)每只蚂蚁的相对位置不会改变(a蚂蚁开始在b蚂蚁右边,则它无论走多久都是在b蚂蚁右边),输入时记录下该位置下蚂蚁的编号,对蚂蚁的位置进行排序,然后新建一个数组dl,存下初始位置时蚂蚁的编号(即每只蚂蚁之间的相对...

2019-03-21 21:04:01 192

原创 (noip2011)聪明的质监员(二分)

题目传送门sxazr本体数据范围10^5,nlogn做法可以,就可以想下二分,真是一定要把题读好本题要用到前缀和求每个区间的y值(具体看代码)二分w值;如果在当前w下所求Y比S小,那么w就取大了;反则反;看数据范围代码#include <iostream>#include <cstdio>#define LL long longusing namesp...

2019-03-20 15:14:51 117

原创 (noip2011)计算系数

题目传送门sxazr本题可用杨辉三角来做,也可以直接用组合数公式来求(要用费马小定理,时间快,空间占的少),我来说下杨辉三角的做法先求出题目K次方的系数分f[k][i]输出f[k][m]%MOD(注意是m)*a^n *b^m%MOD;开long long 防炸也可不用代码在这里插入代码片```#include <cstdio>#include <iostream&...

2019-03-20 15:00:11 470

转载 使用帮助

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-03-20 10:53:50 152

原创 (noip2011)选择客栈

题目传送门sxazr三个数组 a,b,c;a表示当前颜色的最后位置b一个临时数组 好像没什么卵用c这个颜色的客栈目前有多少个输入过程中,如果当前客栈花费合理,那么和它颜色相同的客栈的都可以和它搭配,更新ans;更新a,c;代码#include <iostream>#include <cstdio>using namespace std;long lo...

2019-03-19 11:37:34 178

空空如也

空空如也

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

TA关注的人

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