自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速幂入门和矩阵快速幂

一、什么是幂:普通算法计算ana^nan时一般为循环n次,每次乘以a。比如 ans=1; for(i=0;i<n;i++) { ans=ans*a; }数据较大是二、为什么要快速幂当题目要求计算2

2021-10-14 22:36:50 127

原创 usaco 2015 dec contest gold

http://www.usaco.org/index.php?page=dec15resultsA:题意:2* n张牌编号1-2*n,你和对手各n张,你已经知道了对手的牌和出牌顺序(也就是知道了自己的牌)。共n轮出牌,每轮没人出一张。前n/2(n是偶数)轮点数大的人得分,后n/2轮点数小的人得分。求你的最大得分。思路:对于前n/2轮,尽量把大牌打出。后半场尽量把小牌打出。所以可以把前后半场对手出牌分别排序,各扫一遍数出最多能得多少分。B:题意:一头牛最多吃T单位东西,有两种无限多的东西可以吃,质量

2020-11-03 22:30:50 120

原创 cf 1349b Orac and Medians

http://codeforces.com/contest/1349/problem/B题意:给n个数和k,每次操作可以把一段子序列换成它的中位数(偶数的中位数算中间两个数里前面的那个),求是否可以通过若干次操作把它全变成k。这道题本质上不难,但情况考虑的不完整。首先可以发现这n个数可以分成3类:大于k,等于k,小于k。数列里没有k则显然不成立,下面只考虑数列中存在至少1个k。在2个数中有一个等于k,一个大于k,则两个都可以变成k。而一个大于等于k,一个小于k,那么就不能都变成k。也就是与k相邻的大于

2020-05-16 12:26:54 284

原创 usaco 2016 open contest gold

http://www.usaco.org/index.php?page=viewproblem2&cpid=645A:题意:平面上n个点,求如果用2个矩形来完全覆盖点比只用1个节约多少面积(矩形边平行于坐标轴)。思路:按横坐标排序,从左到右扫,假设当前扫到的点是左边矩形的最右的一个点,求出此时面积。在按纵坐标排序,方法差不多,求出来最小值,用只用1个矩形的面积减一下。B:题意:n...

2019-11-13 12:36:52 155

原创 usaco 2016 dec contest gold

http://www.usaco.org/index.php?page=dec16results这次的题目难度不算大。A:题意:有n个点,花费x元就能使距离在sqrt(x)之内的点连边,问x最小是多少。思路:二分答案,在用并查集判断一下。B:题意:n+m个点分成大小为n,m的两份,从n的那一份的第一个点出发,到n的那一份的第n个点,中途遍历其他所有的点。假设遍历的序列是S。要求对于每一...

2019-11-09 19:06:09 132

原创 codeforces 17c

题意:有一个只由abc构成的字符串,可以进行2种操作,把相邻的两个字母前一个换成后面的或把后面的换成前面的。比如ab操作一次可以变成aa或bb。一个字符串称作“平衡的”指它里面出现abc的个数两两只差不超过1。问经过任意次操作后得到的字符串有多少个是“平衡的”。思路:对于字符串s,把s的相邻的相同的字符都缩成一个,比如“aaab”缩成“ab”。如果b缩完后的字符串是a缩完后的子序列,那么b能通过...

2019-11-09 16:23:52 477 1

原创 usaco 2017 jan contest gold

http://www.usaco.org/index.php?page=jan17resultsA:题意:n个数,每个数左,右边比他大的数的个数a,b。如果a,b中大数大于小数的2倍,就说这个数“不平衡”。问有多少个数不平衡。思路:正反各一遍,用树状数组算出之前加入的数中比他大的个数。最后统计一遍。B:题意:n个字母(h,p,s中的一个)可以分成最多k+1个区间,每个区间的值为这个区间中...

2019-10-23 16:56:19 102

原创 usaco 2018 open contest gold

http://www.usaco.org/index.php?page=open17results总体难度不大,不过这次很奇怪,只有两道题。A:题意:2组,每组n个字符串,找出长度最小的区间满足字符串的这一段在组内可以重复但两组之间不能重复。思路:二分答案,滚动哈希,用set维护一下。B:题意:n个0到n的数字,0表示空格,其他数字表示颜色。现在每轮可以找出不相交的一些区间涂上同一种颜...

2019-10-20 14:57:32 136

原创 usaco 2018 jan contest gold

A:题意:一张无向图,每次询问ki,vi计算从ki出发,只走边权大于vi的边,能到几条边。思路:离线操作,先计算vi大的询问,询问前加上边权大于vi的边,用并查集计算。B:题意:一棵树,叶子节点是出口,牛从K点出发,在某些出口有村民抓牛,村民和牛的速度都是1,村民合理行动的情况下至少多少个村民能抓住牛。思路:把K当做树根,每次牛一定往下走,考虑到一个点时,如果牛到他的距离比某一个叶子节点...

2019-09-28 18:37:26 121

原创 usaco 2018 feb contest gold

https://www.usaco.org/index.php?page=feb17resultsA:题意:n∗*∗n的矩阵,要从左上移到右下每移动到相邻的格子一次要花t个时间,每隔2个格(每3个)吃一次草,时长是格子的值,问最小时间花费。思路:可以直接bfs,一步相当于走3步,列举出可以到达的所有位置,用优先队列优化一下就过了。B:题意:左右两排数,如果左右2个数只差小于等于4,这2个...

2019-09-22 16:42:21 162

原创 青岛二中2019男人8题初步题解

A:签到题B:签到题,不过想了将近3分钟C:dp,不过减法取模的时候忘加一个mod导致爆负数了。D:不大好想的二分题。主要就是二分答案,把大于等于答案的数都赋成1,小于的是0,然后check,如果最顶上是0就说明答案小于现在二分的答案,否则大于。check在数组中只有01的时候很好判断(还有一些部分分),需要先找规律。最后发现最上面的数就是最靠中间的连续的2个0或1。思考过程大概是连续的2个...

2019-09-07 22:21:00 193

原创 usaco 2018 open contest gold

第二题比较简单,第三题推导有点难,第一题结论比较好猜,但证明是看题解才有点明白。题解的证明没看懂,所以自己想出来一个思路。A:题意:类似于双向冒泡排序的一种方法:从1到n循环,每次如果后面的数比前面的数小就交换相邻的那两个数;再从n到1循环一次。从1到n加上从n到1总共算1次操作,问一个可能有相同的数列一共要几次才能从小到大排序。题目中还有一个想不到的问题就是及时已经排好序也要操作一次。注意“...

2019-08-24 19:30:42 150

原创 usaco 2018 dec contest gold

难度比上一场大一些,第一题不太好想。A:题意:一个图,牛从每个点出发,要吃草,最后再到达n点。一些点有草,美味值为yi,一个牛只能吃一个点的草,如果他吃了美味值为yi的草,此时它到n的路程比最短路程多了不超过yi,那么它可以吃到这个草。如果他一个草都吃不到,那么认为从这个点出发吃不到草,输出0,否则输出1。先算出从n点到所有点的最短路。再考虑如果吃了点i的草,那么相当于路程减少了yi。那么可...

2019-08-20 18:45:12 254

原创 usaco 2019 Jan contest gold

http://www.usaco.org/index.php?page=jan19results总体难度不是很大,但第一题题目比较难懂。A:dp+统计答案题意:n个单词,每个音节个数为s[i],结尾音节押韵为c[i],求一个m行,每行k个音节的诗,再输入m个大写字母,相同的字母代表这几行最后的押韵要是一样的,但不同字母押韵可以一样。求有多少种写诗的方法。dp[i]表示长度为i时候有多少种方...

2019-08-14 23:12:12 312

原创 提交答案题:关系挖掘

提答题主要技巧:可以比赛一开始就做提答题,留充足的时间算。可以几个程序同时跑,基本不会影响电脑速度。思路:大部分都可以写模拟退火。模拟退火之前有一个随机调整(爬山),就是说先随机出一组初始解,不断随机其中一个数,将他去除,在随机一个加入的数,如果答案更优则用更优的答案接着算,如果不好就重新随机。知道不论怎么随机都没法得到更优的答案,这个就认为是最优的。这个算法把局部极大值认为是整体的最大值,有一...

2019-08-03 11:49:36 164

原创 uva10615 Rooks

题意:n×n的网格,每个格是空的或星号,要求给每个星号染成不同的颜色,使每一行每一列没有相同的颜色。输出最少用的颜色及一种方案。思路:二分图匹配。每一行,每一列都是一个点,共2n个,若i行j列有星号,则加一条i到j的边。很容易猜出结论:需要的颜色个数k是点的最大度数即每行或每列最大星号的个数。然后给这个二分图边染色,使两条颜色相同的边没有公共顶点。可以直接k次最大流,第i次流过的边染成颜色i。也...

2019-08-03 11:18:35 102

原创 cf 38h the great marathon

题意:n个运动员分别从n个点出发,第i个运动员的起点是i号点,终点不确定。运动员的速度都是1。结束后每个人都花了一些时间,时间从小到大排序,前g名金牌,往后s名银牌,g1<=g<=g2,s1<=s<=s2。求一共有多少中不同的奖牌分配方案(2个方案不同指至少1人有不同的奖牌)思路:先Floyd算出每2个点的最短路,在计算每个点与其他点之间的最远距离和最近距离。枚举金牌和银...

2019-08-03 10:30:40 219

原创 arc103f Distance Sums

https://arc103.contest.atcoder.jp/tasks/arc103_d题意:已知一棵树各个顶点到其他顶点距离和Di,问是否存在这样的树并写出树的边。思路:首先Di最大的一个或几个点显然是叶子,即只有1条边与他相连,那么就从叶子开始找规律,设Di最大的点是x,那么他的上一个点的Dfather(x)应该是Dx-n+2*sizeof(x)。然后查找就好了。...

2019-07-14 09:49:49 273

原创 AtCoder Beginner Contest 090C Flip,Flip, and Flip......

https://atcoder.jp/contests/abc090/tasks/arc091_a题意:在nm的网格上每格一张卡,每个格子操作1次,每次操作把他自己和相邻的格子都翻转一次,开始时每个卡都朝上,问操作后有几张朝下。思路:每个格子被翻的次数等于与它相邻的格子的数量加1。先考虑n,m都是1,那么输出1。如果有一个是1,就输出另一个数-2,如果都大于2,那么输出(n-2)(m-2),因...

2019-07-04 16:49:40 170

原创 Atcoder beginner contest 089C March

https://atcoder.jp/contests/abc089/tasks/abc089_c题意:输入n个人的名字,找出满足一下条件的三元组:每一个人名字都以m,a,r,c,h开头,没有人名字开头字母是重复的。思路:分别统计出名字以m,a,r,c,h开头的人数,记为a,b,c,d,e,答案就是abc+abd+abe+acd+ace+ade+ bcd+bce+bde+cde(乘号省略)。注...

2019-07-04 15:57:54 194

原创 Atcoder beginner contest 087C Candies

https://atcoder.jp/contests/abc087/tasks/arc090_a题意:1个2×n的格子,从左上角出发,每次只能往下或往右走,一直到右下角。求经过的格子中,数值的总和最大值。思路:直接dp#include<cstdio>#include<string>#include<cstring>#include<utili...

2019-07-04 15:42:26 134

原创 AtCoder Beginner Contest 088C Takahashi's Information

https://atcoder.jp/contests/abc088/tasks/abc088_c题意:输入1个3*3矩阵已知(i,j)=ai+bj,判断是否存在a1,a2,a3,b1,b2,b3满足上述关系。思路:b2-b1=(1,2)-(1,1)=(2,2)-(2,1)=(2,2)-(2,1),同理b3-b2,a2-a1,a3-a2也可以进行判断。1个if就过了。#include<...

2019-07-04 15:40:55 170

原创 AtCoder Beginner Contest 086C Traveling

https://atcoder.jp/contests/abc086/tasks/arc089_a题意:一个点从(0,0)出发,在ti秒时要到(xi,yi),每一秒只能上下左右走一格。是否能做到。思路:记录上一次点的位置和时间,求出上一个点走到这个点的最少时间,若时间差大于最少时间且时间差比最少时间多的时间是2的倍数。若满足则继续判断,若不满足则输出No,退出。#include<cst...

2019-07-04 08:29:02 166

原创 AtCoder Beginner Contest 085C Otoshidama

https://atcoder.jp/contests/abc085/tasks/abc085_c题意:钞票面额只能是10000,5000,1000,有n张钞票组成了y元,求是否可能,若可能就输出一组可行方案。思路:先把所有面额除以1000,方便计算。枚举10000面额的数量,得到剩余的钞票总面额a和张数z。设5000的数量是x,则有5x+1(z-x)=a。整理得x=(a-z)÷4。若x是整数...

2019-07-04 08:07:04 109

原创 AtCoder Beginner Contest 084C Special Trains

https://atcoder.jp/contests/abc084/tasks/abc084_c题意:n个车站,相邻的2个车站有单程车,从i到i+1用Ci分钟,第一趟Si分钟时发,之后每Fi分钟发一辆。Fi是Si的因数。求从1到n每个点出发到n的最少时间。思路:n比较小,可以暴力。先枚举出发点1~n-1(从n出发时间一定是0),在计算从这个点出发到各个点的最小时间,输出到n的最小时间就行了。...

2019-07-04 07:54:18 228

原创 AtCoder Beginner Contest 083C Multiple Gift

https://atcoder.jp/contests/abc083/tasks/arc088_a题意:有一串数,每个数都在x,y之间,严格升序,且每个数都是前一个数的倍数。求这样的序列最大长度。思路:可以直接模拟。第一个数为x,第二个数为2x,第三个为2*2x…每个数是上一个数乘2,到值大于y时输出答案。...

2019-07-04 07:45:14 252

原创 Atcoder beginner contest 111D Robot Arms

https://atcoder.jp/contests/abc111/tasks/arc103_b判错很好办,把每一次横纵坐标加起来,如果同号就对,异号就错。当m=1,a1=1时,可以到达(1,0),(0,1),(-1,0),(0,-1)。m=2时,a={1,2},那么相当于把m=1时能到的区域往上下左右各移2位,组成4个小正方形,只看整点,那么新的区域就是一个对角线一半长3,中心在原点的菱形。...

2019-06-28 12:50:15 309

原创 Atcoder beginner contest 112D Partition

https://atcoder.jp/contests/abc112/tasks/abc112_d可以找出m所有的因数x,若m/x>=n,即把m分成m/x组,每组数值为x,这些组能填满n个组,那么x就可以是数组的公因数。每次满足都更新答案。#include<cstdio>#include<string>#include<cstring>#incl...

2019-06-28 12:39:44 124

原创 Atcoder beginner contest 113D Number of Amidakuji

https://atcoder.jp/contests/abc113/tasks/abc113_d可以直接dp解决,不过要先2w暴力找出转移的系数。#include<cstdio>#include<string>#include<cstring>#include<utility>#include<cmath>#include...

2019-06-28 12:34:04 217

原创 Atcoder beginner contest 114D 756

https://atcoder.jp/contests/abc114/tasks/abc114_d首先先找出一种方法能由a,b的一些与因数有关的信息推出a×b的信息。比如a分解质因数后a=p1x1+p2x2+…pnxn,那么a的因数个数就有(x1+1)×(x2+1)×(x3+1)…×(xn+1)个。75=5×5×3=25×3=15×5=75。那么先把1-n全部分解质因数,统计每个质数出现的个数(...

2019-06-28 10:02:39 218

原创 Atcoder beginner contest 115D Christmas

https://atcoder.jp/contests/abc115/tasks/abc115_d先从1到n找出第一个层数比X大的级别a,之后级别再高对答案的影响只有最前面那几个“B”,那就是暴力找a中的前m-(n-a)层里有几个肉,如果正在查找的个数包含一些整层还可以直接调用之前算的肉层数。#include<cstdio>#include<string>#incl...

2019-06-28 08:40:26 164

原创 Atcoder beginner contest 116D Various Sushi

https://atcoder.jp/contests/abc116/tasks/abc116_d这个题可以用贪心。第一种情况是把美味值最大的k个加起来,第二种是取的种类数越多越好。在种类数增多的过程中也要更新答案。注意long long。#include<cstdio>#include<string>#include<cstring>#include...

2019-06-28 08:26:14 468

原创 Atcoder beginner contest 117D XXOR

https://atcoder.jp/contests/abc117/tasks/abc117_d看到位运算很有可能有2进制位。先把所有数转成2进制并且统计第i位有多少个1,然后从最高位(k和a1,a2…an的最高位)开始模拟,如果这个位的1的数量少于0的数量k的这个位就可以是1,这样1就变成0,0变成1,但还要判断k在这一位能否是1,若之前的位上都与k最大值的相应的位相同,则这一位取决于k最大...

2019-06-28 07:57:06 242 1

原创 Atcoder beginner contest 118D Match Matching

https://atcoder.jp/contests/abc118/tasks/abc118_d直接用完全背包解决。用dp[i][j]表示此状态下最大的长度,长度相同时前面的位要越大越好,就在转移方程里加入一点优先级。输入的M个数字先排序优先级才能用。#include<cstdio>#include<string>#include<cstring>#...

2019-06-28 07:44:30 175

原创 Atcoder beginner contest 119D Lazy Faith

https://atcoder.jp/contests/abc119/tasks/abc119_d先用lower_bound或upper_bound找出在查找的点左右最近的shrines和temples,共4个,设他们为Ls,Rs,Lt,Rt。各访问一个就有这几种情况:(Ls,Lt),(Rs,Lt),(Ls,Rt),(Rs,Rt) 。访问同一侧就取距离的max,访问不同侧就要考虑来回,距离小的加...

2019-06-28 07:36:49 282

原创 Atcoder beginner contest 120D Decayed Bridges

https://atcoder.jp/contests/abc120/tasks/abc120_d可以用并查集解决。倒着操作,往里加边。输出的答案为总的点对的数量减去每一个集合中点对的数量之和。模拟就过了。#include<cstdio>#include<string>#include<cstring>#include<utility>#...

2019-06-27 23:02:33 215

原创 Atcoder beginner contests 121D XOR World

https://atcoder.jp/contests/abc121/tasks/abc121_d可以先计算出g(n)=1 xor 2 xor 3…xor n,f(a,b)=g(a-1)xor g(b)。打表可以发现g(n)的规律:n%4=0时g(n)=n。n%4=1时g(n)=1。n%4=2时g(n)=n+1。n%4=3时g(n)=0。注意开long long。#include<cs...

2019-06-27 22:46:54 148

原创 Atcoder beginner contest 122D We like AGC

https://atcoder.jp/contests/abc122/tasks/abc122_d可以用dp解决。当前能不能这个字母只于前3个字母有关。设dp[i][a][b][c]为长度为i时第i-3个字母是c,第i-2个字母是b,第i-1个字母是a时的数量。则可以枚举i,a,b,c和当前的字母d,abcd只有5种情况不成立,剩下的都可以加起来。5种分别是:?AGC,?ACG,?GAC,A?G...

2019-06-27 22:31:10 240

原创 Atcoder beginner contest 123D Cake 123

https://atcoder.jp/contests/abc123/tasks/abc123_d打无脑暴力肯定不行,只好打有脑暴力。先暴力算出A和B中的所有可能,取前k个,再用这k个跟C中暴力求所有可能,再取前k个。#include<cstdio>#include<string>#include<cstring>#include<utility...

2019-06-27 22:03:27 331

原创 Atcoder beginner contest 124D Handstand

https://atcoder.jp/contests/abc124/tasks/abc124_d每次可以将连续一部分变相反。先统计出共有几部分,每一部分有相同数字组成,相邻两部分的数字不相同。可以发现每次最多取2k+1个组。然后枚举算一下最大的和是多少。细节处理一下就好。#include<cstdio>#include<string>#include<cst...

2019-06-27 21:50:55 323

空空如也

空空如也

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

TA关注的人

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