自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现大整数类的加法

首先我们需要定义一个类,它支持传入的是整形,字符串,同时默认参数为0;其次我们需要重载运算符+,=,重载输出流<<,同时重载输出流时,我们需要用friend定义友元,执行cout<<类的语句;为了代码的简洁性,我们可以将整形转为字符串来储存。代码如下#include <iostream>#include <string>using namespace std;class HugeInteger{ private: string str;

2021-12-06 19:21:39 1307 3

原创 自由与枷锁

写点别的东西吧孔子的自由是七十而从心所欲,不逾矩的行为自由,苏轼的自由是才思泉涌,落笔天成的思想自由。我们不妨把孔子的行为自由叫做权利,将苏轼的思想自由叫做自由意志。显然孔子所说的自由和苏轼的自由不是同一种自由,前者倾向于行为,后者倾向于想法。而一个人显然拥有不可剥夺的无限的自由意志。例如,一个人被囚禁,奴役起来了,我们说他失去了自由(权利),但他却没有失去自由意志,他依然可以在精神世界里遨游。学生坐在课堂里失去了在操场玩耍的自由(权利),但他依然有开小差的自由(自由意志)。正如波普尔所说,观念在波普尔第

2021-12-04 22:29:51 970

原创 【NOIP模拟赛】咖啡供应

题解:先跑遍dfs从深度最高点出发任何修改他的父亲节点,向上走就减减,那么发现减到-K那么显然必须放一个coffee,最后再特判一下1为不为-或者没走到过#include<bits/stdc++.h>using namespace std;long long read(){ long long num=0; char ch=getchar(); while(ch>...

2019-10-08 21:13:05 319

原创 【NOIP模拟赛】最大跨距

hash加贪心就行了#include<bits/stdc++.h>#define M 10007#define MOD 1000000007using namespace std;long long s[100005],s1,s2;long long basic1,basic2;long long tot,tot1,tot2,st=-1;char ch;int ma...

2019-10-08 21:05:29 245

原创 【NOIP模拟赛】相交

题解:因为是树所以路径一定唯一,那么我们先算出a,b的lca为f1再算出c,d的lcaf2那么不难发现是求是否有重合路径,我们先把a到b的路径拆成a到f1和b到f1两条路径,那么就是求c到f2和前两个是否有重合或者d到f2是否与前两个有重合#include<bits/stdc++.h>using namespace std;int head[100005];int next...

2019-10-08 21:03:50 208

原创 【NOIP模拟赛】b

题解问题可以转化成在i∈[1,105]i∈[1,105]中,gcd=i的方案数。在转化一下,可以先求i|gcd的方案数,然后再来容斥一发。设fi,jfi,j表示在第i个序列中,j的倍数有多少个,那么i|gcd的方案数就是Πnj=1(fj,i+1)−1设gigi表示gcd=i的方案数,那么gi=Πnj=1(fj,i+1)−1−∑j=2gi∗j这样,就倒着求g就好了。#includ...

2019-10-08 20:58:52 294

原创 【NOIP模拟赛】a

题解:一看值就只有1/0两种那么就可以把求个数转换为求和;首先很容易想到先预处理从(0,0)到(i,j)的所有矩阵值,然后枚举左上端点,求出新的矩阵,满足条件就加加,但是呢复杂度是O(nnm*m)的显然过不了,那么我们再观察发现给定上端点和小端点时,矩阵从左到右具有单调不减性,那么我们就在每一个上端点和下端点中预处理dp(就是从左上是(i,0)左下是(j,0)的矩阵),然后再枚举右端点然后呢...

2019-10-08 20:55:07 266

原创 【NOIP模拟赛】轻功

Description题目背景: 尊者神高达进入了基三的世界,作为一个 mmorpg 做任务是必不可少的,然而跑地图却令人十分不爽。好在基三可以使用轻功,但是尊者神高达有些手残,他决定用梅花桩练习轻功。 题目描述: 一共有 n 个木桩,要求从起点(0)开始,经过所有梅花桩,恰好到达终点 n,尊者神高达一共会 k 种门派的轻功,不同门派的轻功经过的梅花桩数不同,花费时间也不同。但是尊者神高达一次只...

2019-10-08 20:45:37 182

原创 【NOIP模拟赛】积木大赛

题解:二分高度,去算是否存在这样的高度出现再判断与m的大小关系#include<bits/stdc++.h>using namespace std;long long n,m,maxx;long long a[100005];long long sum[100005];long long h[100005];long long t[100005];long long ...

2019-10-08 20:38:44 362

原创 【NOIP模拟赛】铁路运输

题解:先用跑一次最短路,记录每个点的所有最短路的入度节点,以及会给别的节点造成最短路的出度,然后呢就是每次每次改边就是将深度大的那个点减去深度小的入度,如果有个点没有了入度就ans++,然后再去修改他的所有出度;#include<bits/stdc++.h>using namespace std;int d[100020];int vis[100020];set<i...

2019-10-08 20:35:37 336

原创 【NOIP】test

【题目背景】Tom在学写动态树,但是做题时过了样例,提交RE。Tom抓住Jerry要他写个暴力来对拍。Jerry觉得这任务太简单了,就让你来完成一下。【题目描述】有一棵n个节点的树,初始时根节点为1。现在要支持如下操作——1、将某节点设置为根;2、改变某节点权值;3、询问以某节点为根的子树内节点权值之和;4、询问以某两点 为端点的链上的节点权值之和。【输入格式】第一行两个正整数n和q,...

2019-10-08 20:30:10 219

原创 【NOIP模拟赛】盟主的忧虑

题解:显然任意所求路径就只经过一条密道,然后呢,画图发现就是一个个环,然后可以用并查集来维护属于一个环或者是直接赋值#include<bits/stdc++.h>using namespace std;long long read() { long long num=0; char ch=getchar(); while(ch>'9'||ch<'0') {...

2019-09-24 21:32:29 235 1

原创 【NOIP模拟赛】林下风气

题解 :dp维护乱搞,强行枚举最小值,然后算出联通块满足的值f[i][1]和不满足的值f[i][0];#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=3350,P=19260817;int n,k,rt,num;int a[N],last[N];ll f[N][2],...

2019-09-24 21:29:18 244

原创 【NOIP模拟赛】food

题解:把草和牛放在一起存再根据价格排序,然后再从小到大判断,如果是牛就存鲜美程度,不是就在已有牛中查找鲜美程度最接近的那个小于#include<bits/stdc++.h>using namespace std;struct oo{ long long p,x; bool flag;}cg[200005];int n,m;long long ans;multiset...

2019-09-24 21:23:23 173

原创 【NOIP模拟赛】tree

题解:这道题首先先找出最短路,再寻找过程中保存所有可以进入该点并对该点可以贡献最短路的个数,然后再根据乘法原理将所有的乘起来就OK了#include<bits/stdc++.h>#define M 2147483647using namespace std;int head[2000005];int next[2000005];int ver[2000005];int...

2019-09-24 21:20:44 201

原创 【NOIP模拟】number

题解:先枚举出所有数可能搭配出的最小公倍数,再二分一下答案,进行判断是否合法,判断就用容斥原理乱搞就行了#include<bits/stdc++.h>using namespace std;long long n,k;const long long maxans= 1e15;long long a[20];long long read(){ long long num...

2019-09-24 21:17:18 188

原创 【NOIP模拟赛】小猫爬山

DescriptionFreda和rainbow饲养了N只小猫,这天们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下(呜咕><><)。Freda和rainbow只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是 C1、C2…… CN。当然,每辆缆车上的小猫重量之和不能超过W。每 租用一辆缆车,Freda和rain...

2019-09-24 21:11:58 553

原创 【NOIP模拟赛】刺客信条(AC)

题解 :枚举主教的攻击范围,再用并查集看两个主教中有没有路可以走,因为攻击范围必然是个圆#include<bits/stdc++.h>using namespace std;int x,y,n;int a[2005],b[2005];struct oo{ int u,v; long long l;}edge[2005*2005];int cnt;int fa[...

2019-09-24 21:04:57 229

原创 【NOIP模拟赛】最大序列

题解 #:这道题需要的是字典序最大那么显然可以知道对于一个点i它后面的最大点可以直接获取,然后将i赋值为那个点坐标,如果后面最大都不如i-1大那么就往前找i=i-1;#include<bits/stdc++.h>using namespace std;int a[200005];int vis[200005];bool out[200005];queue<int...

2019-09-24 20:58:05 156

原创 【NOIP模拟赛】逛公园

题解:这道题就很奇妙了啊,据说正解是什么分块来着,不过我贪心算一下贡献就过了。只需要算区间中每个点对答案的贡献就行了#include<bits/stdc++.h>using namespace std;int n,q;int d[40005];int l[40005];int read(){ int num=0,f=1; char ch=getchar(); wh...

2019-08-29 20:39:07 273 1

原创 【NOIP模拟赛】列队

这道题就很玄学了,我们将行看做一群点集,把列又看做一群点集,然后所谓的不好惹的同学就是该行和该列只能选一个,那么我们将这两个点连起来,然后呢就发现是一个二分图的最大独立集,然后呢用匈牙利算出最大点集然后呢剪一下就OK#include<bits/stdc++.h>using namespace std;int n,k,ans;int vis[1005],a[1005];set...

2019-08-29 20:36:42 179

原创 【NOIP模拟赛】小凯学数学

题解:自己手模一下就很容易就发现所谓的小凯运算就是两数之和除以二嘛,然后呢我们就考虑乱搞一下,因为如题所述每次合并的只能是相邻的两个,然后我们叫考虑枚举区间中点点然后一直分下去直到只有一个或连个元素,然后再自下向上维护就OK,不过还要加一个记忆化才行,因为上一层中点不一样可能这一层分的区间有重复就不要计算了#include<bits/stdc++.h>using namespa...

2019-08-29 20:32:17 218

原创 【NOIP模拟赛】图

题解:这道题先考虑会有几种情况,显然只有两种对吧1ab一组cd一组2全部一组,那么我们就先跑n遍bfs那么就可以求出任意两点间距离,然后呢就枚举ab和cd两组间重合长度,重合就可以减去嘛#include<bits/stdc++.h>using namespace std;int n,m;int tot,inf;int ver[6005];int head[6005];...

2019-08-29 20:26:03 189

原创 NOIP模拟赛地球发动机

题解:这道题显然可以看出是DP因为不难观察出是要继承对吧,然后呢发现每个去继承前面的复杂度会爆掉,所以就从最后一个开始维护啦#include<bits/stdc++.h>using namespace std;long long f[100005];int a[100005],p[100005],x[100005];int read() { int num=0,f=1;...

2019-08-29 20:20:59 215

原创 【NOIP模拟赛】绿洲

题目翻译过来就是很水的迪杰斯特拉跑图啦,我天真以为直接跑到已有绿洲就继承会很快的没想到更慢了#include<bits/stdc++.h>#define inf 1000000000using namespace std;int n,m,k;int head[200005];int next[200005];int ver[200005];int d[100005];...

2019-08-29 20:17:09 147

原创 【NOIP模拟赛】蒲公英的约定

题解:这道题如果正向做就是在线的求高阶同余方程。时间复杂度不用BSGS最坏O(nq)用了就是O(n sqrt(q))所以就要考虑取巧的方法,因为已知第i步的答案与i-1步有关,我们又同时知道最后一步的b一定为0那么上一步的答案就为此时的c(由异或可得),那么我们就可以一步步倒退回去求得所有答案,时间复杂度O(n),秒杀此题。#include<bits/stdc++.h>usi...

2019-08-26 19:42:04 204

原创 NOIP 模拟题 奶牛抗议

题解:这道题一看就不难得出这是一道dp题,设sum[i]是a[1]-a[i]的和,那么显然可得当sum[i]-sum[j]>=0时dp[i]可以从dp[j]处转移,那么就把所有满足条件的dp[j]加起来。于是乎可得方程dp[i]=∑dp[j] (sum[i]>=sum[j])给出一份可在某谷上过的代码:#include<bits/stdc++.h>#define ...

2019-08-26 17:00:52 195

原创 【NOIP模拟赛】死宅与陷阱

死宅与陷阱题解:这是一道很简单的dfs,只需要从s把图跑一遍算出,每个点的到达概率。把他们存入一个数组,然后从大到小sort一遍,显然概率越大的权值越应该加P,然后就把每个点的概率*权值就OK了。#include<bits/stdc++.h>#define M 1000000009using namespace std;int head[100005];int nex...

2019-08-26 16:53:22 149

原创 【NOIP模拟赛】track

【题目背景】Tom 又一次地在追 Jerry。Jerry 跑进了一个神奇的跑道,Tom也跟了进去。Jerry 想利用这个跑道让 Tom 摔倒,这样就不会被追上了。Jerry 正在全力奔跑,所以就把这个计算任务交给你了。【题目描述】Jerry 初始时在地面上的入口处。在跑道入口,以及在跑道中每跑过一秒就会遇到一个分岔口,一边是上坡跑道,一边是下坡跑道,跑道都是通向前方,是不会形成环的...

2019-08-23 16:26:31 307

原创 【NOIP模拟赛】capacitor

capacitor1s/256MB【题目背景】Jerry 教授又在给小老鼠讲课了。这回 Jerry 讲到了电学中电容的串并联,并给小老鼠留了搭电容的课后练习。但是 Jerry 还要继续备课,所以就请你帮忙给出标准答案了。【题目描述】电容,符号是 C,单位是法拉(F),然而这个单位太大了,Jerry 会用皮法(pF)来表述一个电容,1pF=10^−12F。Jerry 告诉你:两个...

2019-08-23 12:05:28 315 1

原创 【NOIP模拟赛】指引

题解:主要是要发现贪心的策略,就是对x进行排序,对每一个门从小到大遍历,然后把满足条件的人加进来,然后选出最高的那个可以手模证明一下 #include<bits/stdc++.h> using namespace std; int n,k; int sum; set<pair<int,int> >door,dead; int read(){ ...

2019-08-22 22:27:36 153

原创 NOIP模拟赛荒诞

题解:如果你要是学过后缀数组但是不幸学艺不精,碰见这道题就惨了,可能会掉坑,用什么倍增优化,双排序之类的,然后一个小时就没了哭笑 。其实只要稍稍分析一下就可以发现这真的是一道水题,太水了。 就是算一下从一到字符串长度的每个数的平方和。因为不难证明这个前缀数组的字典序与前缀长度保持一致,因为i-1号前缀一定是i号前缀的前缀,所以说i-1号前缀的字典序小于i号前缀的字典序千万别想着用什么打表O(...

2019-08-22 20:03:04 135

原创 旅程

旅程题解:这道题可以先预处理每个点的迪杰斯特拉也可以最后来做,然后呢通过迪杰斯特拉找出A-B的路径,然后呢给这些路径打上A的标记,方便后面的删除,后面的删除就只需要把经过这条边的所有起点再跑一次#include<bits/stdc++.h>#define inf 100000000using namespace std;int n,m;set<int>pas...

2019-08-20 17:30:04 159

原创 妹子

妹子题解:如果不考虑旋转的话就只有七十分,所以想要A掉就必须考虑旋转之后塞进去#include<bits/stdc++.h>using namespace std;const double pie=acos(-1);int n;int read() { int num=0,f=1; char ch=getchar(); while(ch>'9'||ch...

2019-08-20 17:24:37 311

原创 正睿OIday8-day10

day8-day10前几天忘写了,遭到宋大佬全国追债,现在才来补上(哭笑)。这几天都在打比赛,觉得天天都只能打个暴力,打打树啊打打模拟之类的,骗分,不过除了第一天掉了一百三十多rating,后面都在涨(不过还是点点点点涨)只有七八十名左右。太菜了,五个小时三道题满分300才几十分,连半百都很勉强。感觉除了第一天爆的比较惨这两天都还OK,正常菜鸡水平...

2019-08-06 23:18:31 244

原创 正睿OIday7

day7今天学的简单数论,感觉比前几天轻松一点点因为原来学过的,不过还是很难,原来不会的还是不会(哭笑)原来会的反而感觉有点模糊了,诡异。明天就要开始为期十天的欢乐爆零赛了,好紧张...

2019-08-03 19:33:47 267

原创 正睿OIday6

day6今天主要讲的是树上的DP,但是与我最后学到的相差甚远,我只学到了点分治并且通过重心查找来优化,避免卡链,最后DEV-C++还爆掉了我也不知道打对没有。后来还想学一波树链剖分的看了一下感觉两百多行起步就有点难以理解了,就放弃没学了...

2019-08-03 09:11:45 267

原创 正睿OIday5

正睿OIday5今天感觉学得还很正常因为没有出现太多“相信你们都会吧”,“相信大家都听明白了吧”之类的大佬眼中世界的话,这次算是从零基础讲的网络流,不过后面证明什么O(n32) O(n^\tfrac{3}{2}) O(n23​)就感觉很玄学了后来就只把模板打了就算了...

2019-08-02 08:55:53 184

原创 正睿OIday4总结

DAY4今天做了一套模拟的ACM,难难难!!!爆零爆零爆零!!!WAWAWA!!!有很多题都出现了头文件不支持,题目时间复杂度匹配不正确,英文题题意难以理解等问题,主要还是太菜了,什么都不会,蒟蒻本人,打到最后都放弃了,太难了,很多题都感觉好像可以用什么什么做又好像不行就很自闭,下午有奇妙dalao献歌一曲,还放上了bilibili,献上网址一波 https://www.bilibili.co...

2019-07-31 18:51:27 197

原创 正睿OIday3总结

day3今天学了容斥原理,公式一大串,极其复杂,不过呢还好原来学过理解不是很困难,不过呢,当讲题的时候运用的容斥原理就难以理解了,因为他很多时候就直接跳过了容斥那一步,直接用结论,记忆比较深刻的就是用容斥求欧拉函数,直接就套上了公式,看得一脸懵逼,后来很久了才明白...

2019-07-30 19:54:10 195

空空如也

空空如也

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

TA关注的人

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