自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 要时刻注意 long long

long long是一个神奇的东西,它会伴随你的整个OI生涯。(用Python肯定不会有这事)无论你有多强,你都要注意long long。即使你去考NOI,你还是得注意。在今天的模拟赛中,我又一次得到了惨痛的教训。原本T1的标算因没开long long,变成了50分。我从rank10->rank50。以前也有过这种情况,但都没在意。在cf上打比赛,有题过不了,发现数据太大,把所有in...

2018-08-05 19:08:42 497

原创 Usaco Training Section 6.5 All Latin Squares

All Latin Squares 拉丁正方形一种正方形的数字编排1 2 3 4 52 1 4 5 33 4 5 1 24 5 2 3 15 3 1 2 4是一个5*5 的拉丁正方形,每个1 到5 的整数在每行每列都出现且出现一次.写个程序计算N*N 的的拉丁正方形的总数且要求第一行是:1 2 3 4 5.......N你的程序应该算称呼任意的从2 到7 的N(Your pro...

2019-02-07 15:22:31 397 1

原创 Usaco Training Section 6.4 Electric Fences

Electric Fences 电网农夫约翰已经决定建造电网.他已经把他的农田围成一些奇怪的形状,现在必须找出安放电源的最佳位置.对于段电网都必须从电源拉出一条电线.电线可以穿过其他电网或者跨过其他电线.电线能够以任意角度铺设,从电源连接到一段电网的任意一点上(也就是,这段电网的端点上或者在其之间的任意一点上).这里所说的“一段电网”指的是呈一条线段状的电网,并不是连在一起的几段电网.若...

2019-02-07 13:19:08 381

原创 Usaco Training Section 6.3 Fence Rails

Fence Rails 栅栏的木料农民John 准备建一个栅栏来围住他的牧场.他已经确定了栅栏的形状,但是他在木料方面有些问题.当地的杂货储存商扔给John 一些木板,而John 必须从这些木板中找出尽可能多所需的木料.当然,John 可以切木板.因此,一个9 英尺的木板可以切成一个5 英尺和一个4 英尺的木料 (当然也能切成3 个3 英尺的,等等).John 有一把梦幻之锯,因此他在切木料...

2019-02-04 14:06:27 269

原创 Usaco Training Section 6.2Shaping Regions

Shaping Regions 形成的区域N 个不同的颜色的不透明的长方形(1 <= N <= 1000)被放置在一张宽为A 长为B 的白纸上.这些长方形被放置时,保证了它们的边于白纸的边缘平行.所有的长方形都放置在白纸内,所以我们会看到不同形状的各种颜色.坐标系统的原点(0,0)设在这张白纸的左下角,而坐标轴则平行于边缘.PROGRAM NAME: rect1INPUT FO...

2019-02-03 23:33:52 287

原创 Usaco Training Section 6.2Packing Rectangles

Packing Rectangles 铺放矩形块IOI 95给定4 个矩形块,找出一个最小的封闭矩形将这4 个矩形块放入,但不得相互重叠.所谓最小矩形指该矩形面积最小.所有4 个矩形块的边都与封闭矩形的边相平行,图1 示出了铺放4 个矩形块的6 种方案.这6 种方案仅只是可能的基本铺放方案.因为其它方案能由基本方案通过旋转和镜像反射得到.可能存在满足条件且有着同样面积的各种不同的封闭矩...

2019-02-03 15:59:53 235

原创 Usaco Training Section 6.2Calf Flac

Calf Flac 最长的回文据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文.你的工作就是去这些牛制造的奇观中寻找最长的回文.寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母'A'-'Z'和'a'-'z'.要你寻找的最长的回文的文章是一个不超过20,000 个字符的字符串.我们将保证最长的回文不会超...

2019-02-02 22:28:19 232

原创 Usaco Training Section 6.1 Cow XOR

Cow XOR 奶牛异或农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个奶牛在他面前排成一行(按序号1..N 的顺序),按照它们的社会等级排序.奶牛#1 由最高的社会等级,奶牛#N 最低.每个奶牛同时被赋予了一个唯一的数在0..2^21 - 1 的范围内.帮助农民约翰找出应该从那一头奶牛开始喂,使得从它开始的某一个连续的自序列上的奶牛...

2019-02-02 16:38:55 288

原创 Usaco Training Section 6.1 A Rectangular Barn

A Rectangular Barn 矩形牛棚到底是个资本家,Farmer John 想通过买更多的奶牛来扩大它的生意.它需要给奶牛建造一个新的牛棚.FJ 买了一个矩形的R(1 <= R <= 3000)行C(1 <= C <= 3000)列的牧场.不幸的是,他发现某些1 x 1的区域被损坏了,所以它不可能在把整个牧场建造成牛棚了.FJ 数了一下,发现有P(1 <=...

2019-02-02 16:30:38 288

原创 Usaco Training Section 6.1 Postal Vans

Postal Vans 邮政货车郊区呈矩形,有四条东西方向的街道和N(1<=N<=1000)条南北方向的街道.在交区的西北角有一个邮局.如N=5 时,郊区如右图所示,圆点表示邮局,直线表示街道.每天邮政卡车从邮局出发,每个十字路口(包括边界和四角)经过且只经过一次.现在邮局希望知道邮政货车行驶的路线有几种.PROGRAM NAME: vansINPUT FORMAT一行...

2019-02-02 16:21:11 397

原创 Usaco Training Section 5.5 Two Five

刚看时有点蒙,看了一会儿还是不知道咋做。于是看了题解,刚看到记忆化搜索就恍然大悟。其实也挺好想的,f[a][b][c][d][e]表示每一行填了几个数后剩下格子的填法。然后就可以推出a……或ab……等的个数。挺短的代码:#include<bits/stdc++.h>using namespace std;int f[6][6][6][6][6];char t[...

2018-11-18 23:27:45 125

原创 Usaco Training Section 5.5 Hidden Password

有一字符串s,长度为l,求s+s中长度为l的最小子串。参考了网上的方法,其实挺简单的。用两个指针i、j,每次将i、j向后移相同位,直到出现不同,大的向后跳。这样复杂度就是O(n)的。#include<bits/stdc++.h>#define ll long long#define ull unsigned long long#define inf 21474836...

2018-11-14 23:44:22 162

原创 Usaco Training Section 5.5 Picture

求许多矩形的周长并。可以联想到5.3的Window Area,这道题是求面积并,我们可以用扫描线+排序推一推/线段树。这道题我们同样可以用扫描线来解决。线段树稍微麻烦一些,具体请见https://blog.csdn.net/tomorrowtodie/article/details/52048323我的代码:#include<bits/stdc++.h>#def...

2018-10-14 10:55:12 121

原创 Usaco Training Section 5.4 Telecowmunication

一道最小割点集的题目。因为本人比较菜,一开始没想到拆点,没做出来。后来看了题解,才知道拆点做挺方便的#include<bits/stdc++.h>#define ll long long#define ull unsigned long long#define inf 1<<29#define mp make_pair#define pii pair&l...

2018-10-11 08:53:30 164

原创 Usaco Training Section 5.4 Character Recognition

看起来有点吓人,其实基本是个模拟。看了半天才搞清楚两个输入文件是干啥的。font.in是27个字符(空格,a,b,c,...,z)所对应的图案,共541行。charrec.in是一串字符所对应的图案。图案有损坏(具体看翻译)。要找出使损坏数字最少的序列。统计时用到一些简单的dp,其他就是暴力。算是挺简单的一题。#include<bits/stdc++.h>#defi...

2018-10-10 19:46:17 279

原创 Usaco Training Section 5.4 Canada Tour

从点1到点n,只能从小的点往大的点走;再从点n到点1,只能从大的点往小的点走。除点1外,任何点不能经过2次。问最多能到多少个点?一上来,什么也没想,写了个暴力,11个点过了前7个点。#include<bits/stdc++.h>#define ll long long#define ull unsigned long long#define inf 2147483647...

2018-10-10 11:36:51 211

原创 Usaco Training Section 5.3 Big Barn

在一个n*n的方格中找出最大的不包含障碍的正方形。(n<=1000,障碍数<=10000)看起来好像有点难,不能随便枚举。但仔细一想,可以发现:最大的正方形中至少有一个的一边靠着障碍。于是我们只需枚举每个障碍上下左右最大的正方形是多少。至于某一个方向最大的正方形怎么求,我们以右边的为例。我们先预处理每一列所有障碍的横坐标,排序。对于当前障碍在x行y列,j从y+1列向右推,每次用...

2018-10-10 10:18:50 127

原创 Usaco Training Section 5.3 Network of Schools

tarjan缩点模板题首先tarjan缩点一下,然后第一问直接输出入度为0的点的个数,因为这些点没有点可以到达。第二问要特判一下,如果原图已经是强连通分量,直接输出0。否则输出max(入度为0的点的个数,出度为0的点的个数),大概理解一下:这样之后,每个强连通分量都能够将文件传出去和传入,好像就可以了。#include<bits/stdc++.h>#define ll ...

2018-10-10 08:50:14 148

原创 Usaco Training Section 5.3 Window Area

有一堆窗户,以及一些创建、置顶、置地、删除的操作,中间要询问几次某个窗户可见的百分比是多少。对于创建、置顶、置地、删除的操作,直接模拟即可。主要是询问。求可见百分比,要求出可见范围,也就是求被覆盖的面积,这是经典的矩阵覆盖。可用扫描线来实现。懒得写线段树(貌似也并不需要),直接排序+推一推。#include<bits/stdc++.h>#define ll lo...

2018-10-10 00:26:21 150

转载 一张stl好图

感谢 陈鲁勇 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/csnd_ayo/article/details/72574924?utm_source=copy

2018-09-22 22:30:31 270

原创 Usaco Training Section 5.3 Milk Measuring

有n种牛奶,问最少取多少种牛奶,使能组成q升,并输出最小的一组解。(牛奶只能加,不能减)宽搜会mle,所以直接id搜索。枚举取k种牛奶,然后dfs+check(dp)#include<bits/stdc++.h>#define ll long long#define ull unsigned long long#define inf 2147483647#de...

2018-09-05 20:47:33 123

原创 Usaco Training Section 5.2 Snail Trails

这……不是普及组难度的题吗?作为5.2的唯一一题有点水了吧。直接dfs,按题意模拟,不用优化。一开始没注意障碍物的横坐标可能会是多位数。其他就没什么坑了吧。#include<bits/stdc++.h>#define ll long long#define ull unsigned long long#define inf 2147483647#define ...

2018-09-02 16:17:19 124

原创 Usaco Training Section 5.1 Musical Themes

一长串数(<=5000个),若一段数和另一段数长度相同,且对应数的差相同,则算同一种。问最长的出现不止一次的序列的长度是多少。法一(乱搞):最直接的想法是枚举。我先把相邻两数的差存了下来,然后枚举了起始点,又枚举了与它相同的所有点,然后一位一位往后比对,这复杂度有点问题,但我判了一下如果循环次数超过一个值,就跳出,神奇地a了!!!#include<bits/stdc+...

2018-09-01 12:09:58 165

原创 Usaco Training Section 5.1 Starry Night

有很多星座,让你给这些星座编号。(一个星座翻折、旋转得到的星座算同一种)直接dfs找联通块,最主要的是判同一种。我是把一个星座的每个点排序,用每个点减去第一个点,得出每个点的相对位置,再把每个点的行列坐标连成一个字符串,放入map。这样写起来可能比直接比对好写一些。#include<bits/stdc++.h>#define ll long long#define u...

2018-09-01 10:35:54 157

原创 Usaco Training Section 4.4 Frame Up

有一些长方形边框叠在一起,求放的顺序。因为每个边框的每条边至少会出现一个字母,所以我们可以求出每个边框的准确位置。然后每次在未用过的边框中找只包含当前字母和已用字母的边框,标记为已用过,再把遇到的已用字母向当前字母连边。最后跑个dfs,求拓扑排序。细节挺多的,一开始没想到拓扑排序,过了好一会儿才想到。然后p数组开小了,怎么也没发现,在usaco上竟然跑出来是wa,而不是re!!!在我的电脑...

2018-08-31 17:04:42 148

原创 Usaco Training Section 4.4 Pollutant Control

裸的最小割题。求最小割和删掉的边(使得删掉的边最少)第一问很简单,用“最大流=最小割”定理,直接求最大流即可。第二问我们可以将每条边从大到小排序,删掉这条边,再跑最大流,如果删后最大流和原来最大流的差等于这条边,那么我们就选这条边,用sum加上这条边,直到sum=原来最大流就可结束。注意:删掉的边要按递增序排。#include<bits/stdc++.h>#defi...

2018-08-31 11:47:04 151

原创 Usaco Training Section 4.4 Shuttle Puzzle

要将W...W_B...B变成B...B_W...W,每次可以1、交换空格和相邻格;2、你可以把一个棋子跳过一个(仅一个)与它不同色的棋子到达空格。用最少步数,打印出每次移动的棋子(最小的一组解)直接dfs,要优化。很明显W向右,B向左,每一步有4种情况:1.WB_->_BW;2.W_->_W;3._B->B_;4._WB->BW_。要按照这个顺序判断,这样就直接是最小...

2018-08-30 20:25:46 145

原创 Usaco Training Section 4.3 Letter Game

a~z各赋一个数值(自己看图),给你一个字典(40000个单词),再给你一些字母,从中选几个组成一个或两个单词,使和最大。最直接的想法就是n^2枚举单词,但n=40000,肯定要炸。然后我就想到可以构造,从这些字母中选几个,再把选出的字母分成两堆,全排列一下。这个看起来挺靠谱的,因为最多只有7个字母。于是我就开始暴力取、分、排……一下搞了100多行,一测,把样例水过了。一交,wa……原...

2018-08-30 18:11:11 133

原创 Usaco Training Section 4.3 Street Race

题意真的挺绕的……第一问求从起点到终点所有路径上哪些点肯定出现,其实也就是把这些点连的边删掉,起点就到不了终点,枚举一下,大概是O(nm)的。第二问求有哪些个点能把图分成两块,两块之间没有共同的边,只有那个分割点是公共的。我们可以发现,第二问答案的集合属于第一问的集合,因为如果第一问的条件不满足,第二问的条件也不会满足。于是我们把第一问的答案每个作为分割点,每次跑两个dfs,第一个从起点出...

2018-08-30 14:34:51 115

原创 Usaco Training Section 4.3 Buy Low, Buy Lower

又遇到了多年不见的高精度!!!题目很好懂,求最长下降子序列的长度及个数(相同的算一个)一开始很激动,样例都没看,以为只求最长下降子序列的长度。直接把序列倒过来,跑一个lis,O(nlogn)。后来发现还要求个数,崩溃*1。很快发现其实还好,只不过好像个数只能O(n^2)来求。还有个头疼的问题,相同的只能算一个,于是我开始乱搞,用map+set,写了好长,崩溃*2,一交,NO!!!还要高精度...

2018-08-30 14:19:44 135

原创 Usaco Training Section 4.1Fence Loops

有一些篱笆,问围成的区域中周长最小的是多少。显然要转化成一个图论问题。首先是建图,我是先把每个栅栏拆成首尾两个点,再把重合的点合成一个点。然后就是找围成的区域,其实就是找环。我从每个点开始dfs,回到自己就形成个环。要注意一下,第i个给出的点不一定是i,而是u[i]!被坑了一次……#include<bits/stdc++.h>#define ll long long...

2018-08-26 23:54:24 108

原创 Usaco Training Section 4.1Beef McNuggets

Chapter4第一题就被卡了一下。有n个数可以取,求每个数可以取无限次,问取的这些数的和不能表示的最大正整数是多少。很显然的背包,但不知道边界,于是决定乱搞。法一(乱搞):用map来做dp数组,正常转移,只要有连续256个数都能表示就结束。(因为每个数都<=256)以为会超时,但神奇地过了。乱搞代码:#include<bits/stdc++.h>#d...

2018-08-26 17:41:57 160

原创 Usaco Training Section 3.3 Camelot

唉,我还是太菜了,一道最短路/搜索题搞了这么久,9次才过。骑士能像马一样跳,国王能上下左右对角线走,还可以选一个骑士绑架国王(拖着国王走),问多少步所有人才能聚在一起。一开始想到了(n*m)^4的做法,就是先从每个点跑个dij,再枚举绑架位置、绑架者、聚集地点、每个骑士。肯定超时。后来发现可以优化。我们在国王只能在一个很小的范围(+-2)活动,否则答案不是最优的。贴上有点繁的代码(...

2018-08-23 21:32:56 228

原创 Usaco Training Section 3.2 Feed Ratios

有4组比例a:b:c,a1:b1:c1,a2:b2:c2,a3:b3:c3,求x,y,z使(a1*x+b1*y+c1*z):(a2*x+b2*y+c2*z):(a3*x+b3*y+c3*z)=a:b:c(0<=x,y,z<100)其实也不是什么难题,直接100^3暴力就行。不过细节还挺多的。注意0的情况。 注意是大写的"NONE" 注意a:b:c(99:99:99!=1...

2018-07-29 11:08:13 145

原创 Usaco Training Section 3.1 Humble Numbers

给你一个素数集合S。若一个数的素因子均属于S,则该数为丑数。求第n个丑数。这题出得很妙,正解不好想。法一:set先把S中每个数放入set。每次取出set中的最小数,即为第i个丑数,并从s中删除。再将它乘S中的所有数,放入set。这个复杂度还行,O(nklog(n)),会t一个点。#include<bits/stdc++.h>#define ll long lon...

2018-07-25 21:29:29 157

原创 Usaco Training Section 2.4 Bessie Come Home

求A~Z、a~z这52个点,求A~Y到Z的最短距离。这题就是正常的最短路题,点数也很少。floyd和spfa都能过。注意:两点间可能有不止一条边。一开始没注意这一点,wa了一次。。。floyd:#include<bits/stdc++.h>using namespace std;int d[53][53];int main(){    freopen(...

2018-07-24 18:14:06 211

原创 Usaco Training Section 2.2 Runaround Numbers

一个数,它的每个数字互不相同且均不为0,从它的首位出发。若当前位的数字为x,下一次往后数x位。若每个数字都到过一次后,又回到了首位,则该数即为所求数。求m后第一个这样的数。 审题很关键啊!!!第一次提交没看到“每个数字都到过一次后”,第二次提交没看到“它的每个数字互不相同且均不为0”。无语了。。。 这题不用想多,直接暴力枚举。#include<bits/stdc...

2018-07-17 22:36:04 122

原创 Usaco Training Section 2.2 Subset Sums

将1~n分成2组,使2组和相等。求有多少种分法。搜索貌似会炸,就用dp。f[i][k]表示最后一个数是i,和为k的方案数。f[j][k]=f[1][k-j]+f[2][k-j]+...+f[j-1][k-j]注意一点,输出“0”当且仅当(1+n)*n/2为奇数。第一次提交时脑抽以为是当n为偶数。用递推写的。#include<bits/stdc++.h>usi...

2018-07-17 22:28:58 115

原创 Usaco Training Section 2.2 Preface Numbering

罗马数字!!!将1~n转成罗马数字后,求出现过的罗马字母各出现几次。一直不想学罗马数字,觉得好复杂。大概看了下题目,知道要转罗马数字,就打开了bdbk。https://baike.baidu.com/item/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97/772296?fr=aladdin罗马数字看起来规则有点多,看完觉得其实还好。觉得减法不好处理,就打...

2018-07-17 22:20:06 108

原创 c++中index最好不要用

一道usaco题我用tarjan做,用index命名数组,然后CE了。。。可能index是个关键字吧。

2018-07-14 17:42:17 3080

空空如也

空空如也

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

TA关注的人

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