- 博客(47)
- 收藏
- 关注
原创 梦醒了,一切都结束了
梦,醒了,一切,都结束了。这里是曹老师写于9月23日的东西11月11日,潍坊,梦结束的地方。第二天出考场之后整个人都麻木了,因为,我真的失败了。回到餐厅,看到同校的都在吃饭了,我刚到食堂就一屁股的坐了下来,『题难都难』,旁边高一的教练还在安慰我。默默地吃完了饭,坐上了车,选了一个靠窗的一个位子坐着,一直看向窗外,想到所有对我有期望的人,然后,流下了眼泪。从昌邑一中出来一直到上高速,我...
2018-11-18 21:39:07 1805 5
原创 [NOIp模拟题] test
好久没写题解了…… 再不写就AFO了,没机会写了Pro题目链接Sol暴力还是很好打的,直接树剖我的暴力是非常非常的暴力,对于操作1都要重新建一次树然而其实不需要这样,正解也不需要建很多次树直接建一棵线段树,对于每一个查询只需要判断当前根和要查询的之间的关系即可(貌似换根只对操作3的答案有影响)操作1:直接root=x即可操作2:线段树单点修改操作3:3种情况,直接上代码很好理...
2018-11-05 15:42:47 309
原创 欧拉函数
定义在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)(\varphi(1)=1)(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler′stotientfunction)(Euler's totient function)(Euler′stotientfunction),它又称为Euler′stotientfunction、φEuler&a...
2018-10-28 19:06:54 320
原创 [2016"百度之星" - 初赛(Astar Round2A)]Snacks
ProQwQSol其实就是求以x为根的子树到0点的距离最大值。用dfs序把每一个结点对应的子树区间和到0点的距离求出来,挂到线段树上,修改的时候直接在线段树上修改整个区间即可。(不太详细,待更……)Code爆搜代码#pragma comment(linker, "/STACK:1024000000,1024000000")#include<iostream>#inc...
2018-10-25 17:48:58 295
原创 [JSOI2009]瓶子和燃料【数论】
ProQwQSol手推几组数据就可以发现:答案即为k个数的gcd所以爆搜出k个出,再暴力求gcd可以过部分数据……正解好像和裴蜀定理有关:把n个数的因子都求出来,找出满足因子个数大于等于k的最大因子即为答案。Code爆搜代码#include<iostream>#include<cstdio>using namespace std;int n , k...
2018-10-25 17:45:23 248
原创 [UVA1374]Power Calculus【迭代加深】
ProQwQSol挺好打的一个搜索题,不过剪枝可能比较难想。不断地用deep来当做答案,深搜一遍,看能否求出想要的答案,如果可以就不用deep++,否则一直做下去。Code#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n , deep ...
2018-10-25 17:41:38 187
原创 [JLOI2014]松鼠的新家【树上差分】
ProQwQSol很裸的一道树上差分,不过和往常还不太一样。根据题目中给出的ai来差分,最后肯定有点被多加了值,所以最后再跑一边去掉就好。然而…… 我lca的模板打错了……Code#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using na...
2018-10-25 17:38:07 464
原创 [CF453A] Little Pony and Expected Maximum【数论】
ProQwQSol如果投n次,最大点数是k,那么情况共有kn−(k−1)nk^n-(k-1)^nkn−(k−1)n种。若n次投掷的点数都在1到k内,共有knk^nkn种情况。若n次投掷的点数都在1到k-1内,共有(k−1)n(k-1)^n(k−1)n种情况。这两个数值相减即可得到最大值是k的情况。化简式子就可以得到答案了。Code#include<iostream>...
2018-10-25 17:37:39 282
原创 树链剖分
概念重儿子:子树中结点数目最多的结点轻儿子:父亲节点中除了重结点以外的结点重边:父亲结点和重结点连成的边轻边:父亲节点和轻节点连成的边重链:由多条重边连接而成的路径轻链:由多条轻边连接而成的路径上图解释:(图片来自:HT008)1的重儿子为4,4的重儿子为5,5的重儿子为6.2的重儿子为3那么1->4->5->6为一条重链2->3为一条重链7为一...
2018-10-24 13:56:35 163
原创 Noip模拟题解题报告
Pro第一次AK。题目链接Sol站军姿算是数学题吧,求出两圆的位置关系,然后余弦定理和扇形面积什么的搞搞就行。#include<iostream>#include<cstdio>#include<cmath>#define rfile(x) freopen("x.in","r",stdin);#define wfine(x) freopen...
2018-10-17 11:42:13 147
原创 Noip模拟题解题报告
Pro题目链接Sol奇怪的字符串样例很棒啊。#include<iostream>#include<cstdio>using namespace std;int n , k , flag = 0;int main() { freopen("str.in","r",stdin); freopen("str.out","w",stdout); sca
2018-10-17 11:35:37 133
原创 Noip模拟题解题报告
Pro题目链接Sol小 G 搭积木一开始脑残想了一个正确的贪心策略,但没拿满。正解:二分+贪心。二分[1,n],mid之前的数放到一列,mid之后的数jud()函数判断能否放到mid列中。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;in...
2018-10-17 11:30:40 119
原创 Noip模拟题解题报告
Pro题目链接Sol消失的数字没难度的一道题,去重之后两个判断即可A。教训:sort之后才能unique#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n , k , m , a[100005];int main() { fre...
2018-10-17 11:21:16 131
原创 Noip模拟题解题报告
Pro题目链接Sol同花顺其实就是求一个最长长度,什么的最长长度呢?如果能组成同花顺,那么一定是同花且连续~~(废话)~~那么一定满足f[i].b-f[j].b+1<=nb为上面的数值,只有这样才可能构成同花顺,枚举更新答案就行了。最后答案是n-maxn#include<iostream>#include<cstdio>#include<a...
2018-10-17 11:15:40 138
原创 Noip模拟题解题报告
Pro题目链接Sol打包模拟一下过程就可以想到是一个裸的01背包,而且还是要恰好装满的那种,所以打一个恰好装满的01背包即可。注意:本题求最小值,所以初始值设为正无穷,然后更新答案。#include<iostream>#include<cstdio>#include<cstring>#define INF 2147483647using na...
2018-10-17 11:06:45 132
原创 Noip模拟题解题报告
Pro题目链接Sol任务安排读懂题之后果断想到二分,暴力判断就可以水过去。听说贪心也可以……#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct Node { int time , end; bool operator < ...
2018-10-07 17:19:33 137
原创 Noip模拟题解题报告
Pro题目链接Sol公交车这道题,要么点多要么边多。正解是点多,因为我们要在公交线路上的任意两点间连一条边,这样就会产生很多的边,但是我们可以加一个虚点,向虚点连边就少很多,因为上了公交车就付一次费,所以只需要一条边有权值就好。然后就是水的dij优化最短路。#include<iostream>#include<cstdio>#include<que...
2018-10-07 17:12:13 197
原创 Noip模拟题解题报告
Pro题目链接Sol智子CQ07年省选题……区间DP当i==j时,子串明显只需要涂色一次,于是f[i][j]=1。当i!=j且s[i]==s[j]时,可以想到只需要在首次涂色时多涂一格即可,于是f[i][j]=min(f[i][j-1],f[i+1][j])当i!=j且s[i]!=s[j]时,我们需要考虑将子串断成两部分来涂色,于是需要枚举子串的断点,设断点为k,那么f[i][j]...
2018-10-07 17:04:19 174
原创 Noip模拟题解题报告
Pro题目链接一套暴力都无从下手的题目Solsusume结论:在最优的方案中,青蛙一定会在某次恰好跳到一个禁区的右端点。错解:二分……因为是SPJ,没法测我自己的程序,不过0.2s的时限也是真的够了……挂标程//#line 7 "TheFrog.cpp"#include <cstdlib>#include <cstring>#include <...
2018-10-07 16:55:31 121
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+20+30=150100 + 20 + 30 = 150100+20+30=150实际得分:100+20+30=150100 + 20 + 30 = 150100+20+30=150Solnumber很裸的模拟题#include<iostream>#include<cstdio>#include<cstrin...
2018-10-02 18:32:56 115
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+100+30=230100 + 100 + 30 = 230100+100+30=230实际得分:100+100+30=230100 + 100 + 30 = 230100+100+30=230Sol##业务办理贪心题。按照最长等待时间升序排序,然后从头到尾模拟着跑一边就好了。#include<iostream>#include...
2018-09-28 18:05:37 153
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+100+100=300100 + 100 + 100 = 300100+100+100=300实际得分:100+100+0=200100 + 100 + 0 = 200100+100+0=200被第三题给虐了,打了一份不是正解却自以为正解的代码……Sol三角形测完之后才明白我原来用了一个比较麻烦的解法,不过还好AC了……因为没有三线共点,所...
2018-09-28 17:54:41 162
原创 LIS & LCS
Initemmm,因为比较简单,所以不写分析了,直接上代码吧。LIS-O(n^2)#include&lt;iostream&gt;#include&lt;cstdio&gt;using namespace std;int n , num[100005] , ans , cnt[100005];inline int mymax(int a , int b) { return a&gt...
2018-09-24 10:51:01 172
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+100+?=200100+100+?=200100 + 100 + ? = 200实际得分:100+70+?=170100+70+?=170100 + 70 + ? = 170PS:第三题好麻烦,打了好几节课Sol铺瓷砖很简单的分数求lcmlcmlcm的问题最后答案注意约分,还要特判分母为111的情况#i...
2018-09-16 09:23:28 135
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+100+50=250100+100+50=250100 + 100 + 50 = 250实际得分:100+10+30=140100+10+30=140100 + 10 + 30 = 140哇哇哇哇哇Solsum很简单的一道数学题虽然有两个求和,但是第二个求和是等比数列的求和直接公式就可以出了因为要除法取模...
2018-09-09 18:00:21 144
原创 Noip模拟题解题报告
Pro题目链接Sco预计得分:100+70+80=250100+70+80=250100 + 70 + 80 = 250实际得分:90+70+80=24090+70+80=24090 + 70 + 80 = 240没有SPJSPJSPJ,T3T3T3评测得505050,手测数据得808080Solenc第一题说实话真的好水,就是一个很简单的字符串模拟题...
2018-09-09 14:30:25 174
原创 [USACO12OPEN]Unlocking Block【BFS / 广搜】
ProLuogu3053Sol真的只是一个BFSBFSBFS!!!一个氧气都救不了的程序(快读+快写还TLETLETLE了一个点)大体思路:对于每一种状态,我们枚举三个模块是否可以向左向右向上向下移动,如果可以移动,入队,继续搜索,队列中存整张图。处理方法:对于队列中的图,不需要每一个点都存储。在输入的时候,我们可以根据点之间的相对位置求出这个模块的形状,存起来,这样队列中只需...
2018-09-05 16:29:44 409
原创 [Pro]斐波那契数列阿【斐波那契数列】
Pro设f(x)f(x)f(x)表示斐波那契数列的第x项。求f(f(x))f(f(x))f(f(x))对1e9+71e9+71e9+7取模的答案。其中x≤10100x≤10100x≤10^{100}。Sol本题的代码实现真的不难,难就难在了思路和预处理。分析:我们令t=f(x)t=f(x)t=f(x),那么题目转化为求f(t)f(t)f(t)对1e9+71e9+71e9+7取模的值...
2018-09-05 16:12:29 261
原创 [USACO13NOV]Farmer John has no Large Brown Cow【状压 / 模拟】
ProLuogu3087Sol哇哇哇,昨晚调了一个小时没调出来,今天早上调了一会就出来了坑点不算很多,只是我比较粗心……拿到题,一眼肯定想到和排列组合有关的知识,其实用到的也不是太多,首先对于单词的存储,我们想方设法的把每一行和每一列的单词都分别存下来,以后都会调用到的。然后预处理出第iii列第jjj行后面有多少种可能性放到qcqcqc数组中,递推公式:qci,j=qc...
2018-08-28 08:37:42 395
原创 [USACO13OPEN]Luxury River Cruise【模拟】
ProLuogu3083Sol第一次做的时候没读懂题意,后来以为题目中的数据一定构成一个环,导致WAWAWA。其实不一定全部构成一个环,但是肯定是有环的,否则kkk这么大的取值范围难道去枚举???先处理出环来,借助visvisvis数组来表示这个环是从哪里开始哪里结束的。然后借助一个类似邻接表的东东,更新答案。对于这么大的kkk,第一感觉就是取模啦,取模之前一定要减去前面不是环的部...
2018-08-27 21:24:34 232
原创 [USACO13JAN]Painting the Fence【扫描线】
ProLuogu2205Sol表示自己独立想不到这个解法……所谓扫描线,就是不断地移动,移动到一条线段的左端点时+1+1+1,移动到右端点时−1−1-1。我们用nownownow表示覆盖的有多少条线段,把每一个区间按照坐标排好序之后,如果发现满足我们的条件,就直接加上两个点之间的点的数量。Code#include<iostream>#include&l...
2018-08-27 21:15:38 731
原创 [USACO13JAN]Square Overlap【模拟】
ProLuogu2202Sol这个题没什么技巧,跟着题目做就能过,主要是式子推的比较麻烦。两个地方需要推式子来算,就是判断是否重叠和计算重叠面积的时候。我们按照横坐标排序,每一次只取出可能与该点有重叠的矩形(左边界比当前矩形的右边界小的矩形),确定了横坐标再确定纵坐标,纵坐标分两种情况:右上方和右下方。自己根据两种情况手推出式子来,就能求解了。Code#includ...
2018-08-27 16:26:45 218
原创 [USACO13JAN]Party Invitations【模拟】
ProLuogu3068Sol这是一篇需要好多容器的题解:vectorvectorvector queuequeuequeue setsetset。我们用vectorvectorvector存下与iii有关的集合是多少,用setsetset存下每一个集合,用queuequeuequeue存下被邀请的奶牛。第一次就是111入队,然后循环vectorvectorvector,把循环...
2018-08-27 16:17:43 321
原创 [USACO13FEB]Perimeter【DFS / 深搜】
ProLuogu3072Sol这题的话,我就把我的想做当做反例给说一下。错误想法:很容易的发现,一个不规则的图形,我们可以通过转换为规则的矩形来求周长,可以平移一些边来求得,但是存在反例。如图,蓝色为草堆。如果我们按照边平移转换为规则的矩形求得话,答案就是161616,但我们会发现,那块空白的区域的两条边没有算进去,所以正确答案应该是181818。正解:既然只有一个...
2018-08-27 10:26:05 544 1
原创 [USACO13FEB]Tractor【二分 + BFS】
ProLuogu3073Sol好水的一道题啊……直接二分答案就可以过,不需要并查集的,二分加广搜,时间复杂度是O(n^2 logM),能过的。读完题,我们很容易的就能知道,答案满足单调性,也就是说,如果mid能够到达一半以上,那么>mid的所有的数都可以达到一半以上,于是就会有一个临界值是达到和达不到之间的,这个值就是我们最终的答案。经分析得,本题满足二分条件,可以二分。...
2018-08-27 10:17:27 419
原创 [USACO13FEB]Milk Scheduling【拓扑序】
ProLuogu3074Sol好水的一道拓扑题……第一次打的时候可以说是随便打的……(逃。样例过了就交了,也没检查, 结果606060分,xswlxswlxswl。改了改部分,加了点细节,就ACACAC了,总共耗时151515分钟……(好长)看到题目中存在先后关系,考虑拓扑,这样题目基本上很简单了。我们比平常的拓扑多维护了一个到目前为止已经的花费,因为这个是要更新答案的,所以,...
2018-08-26 21:19:52 329
原创 我与我的CSDN博客的第一天
CSDNCSDNCSDN的用户们,主要是OIerOIerOIer们,你们好啊,欢迎你们来到曹老师的blogblogblog.这是曹老师的第三个blogblogblog,之前的一个blogblogblog是自己搭的,到目前为止仍然在稳定,后面再说。第二个呢,就是博客园的,我嫌博客园后台不是MarkdownMarkdownMarkdown,要码两份题解,所以果断选择CSDNCSDNCSDN.。...
2018-08-26 20:49:32 374
原创 快读快写:读入输出优化
引入初学OIOIOI的时候,只用的cin/coutcin/coutcin/cout,后来教练说,cincincin很慢,有的数组光读入就超时了……balabalabalabalabalabala,所以那时候学了scanf/printfscanf/printfscanf/printf。再后来,发现有的题优化一下可以省很多时间,于是就学了快读快写,(虽然自己不经常用,也很少手打……)快读...
2018-08-26 20:28:23 3273 1
原创 离散化:两种离散化方式详解
引入离散化,就是把一些很离散的点给重新分配。举个例子,如果一个坐标轴很长(&gt;1e10),给你1e4个坐标,询问某一个点,坐标比它小的点有多少。很容易就知道,对于1e4个点,我们不必把他们在坐标轴上的位置都表示出来,因为我们比较有多少比它小的话,只需要知道他们之间的相对大小就可以,而不是绝对大小,这,就需要离散化。而离散化又分为两种,分为的两种是对于重复元素来划分的。第一种是重...
2018-08-26 20:21:40 49213 13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人