自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 qduoj - 今晚一起打CF吧——Codeforces,十三亿人的ACM梦。(排序背包)

题目链接:点击查看题目大意:给出一个初始值point,然后给出一个minute表示每分钟减少的分数和time表示做完该题需要的分数,请给出一个合适的做题顺序要求在规定时间内最后得到的分数最高题目分析:我们可以把时间看做背包,将分数看做物品,这样就转换成了一个简单的01背包问题,主要是我们应该给选择的物品来一个次序,每个题目因为时间原因,所得到的分数是不同的,导致每个题目都有一个优先级,我们...

2019-09-29 12:14:15 258

原创 中石油训练赛 - 小A盗墓(线段树+异或结论)

题目链接:点击查看题目大意:给出n个数,以及m个操作,每个操作分为两种:1 x y:将第x个数变为y 2 x y:判断闭区间[x,y]中的数能否在进行升序排序后构成一段连续且上升序列题目分析:因为涉及到了区间修改和区间查询的问题,所以我们首先想到利用线段树来辅助解决,第一个操作很简单,单点修改,主要是我们该怎么样在规定时间内完成第二个操作才是问题,这个题目的n和m给的都是5e5,那么我...

2019-09-26 16:45:24 221

原创 区间1~n的异或值

证明我不会。。直接上结论和实现:设f(x, y)为x到y的所有整数的异或值。f(1, n) = f(0, n) =n n % 4 == 01 n % 4 == 1n +1 n % 4 == 2 0 n % 4 == 3实现代码:typedef unsigned long long ull;u...

2019-09-26 15:16:41 754

原创 POJ - 3635 Full Tank?(bfs)

题目链接:点击查看题目大意:给出一个无环无向图,每个点都可以看做一个补给站,油价是固定的,每条路都要消耗一定的油量,给出q个询问,问油箱大小为c,从起点到终点所需要的最小花费题目分析:可以用bfs+优先队列直接爆搜,我们令每个状态都是一个二元组(x,y)代表的是在x点剩y升油,则每个点(u,f)都可以更新为(u,f+1)和(v,f-w)两个状态,因为c给的很小,只有100,总的时间复杂度最...

2019-09-25 10:31:33 310

原创 POJ - 1475 Pushing Boxes(bfs套bfs)

题目链接:点击查看题目大意:要求模拟推箱子游戏的过程,输出最优路径,最优路径要求箱子移动的次数最少,次为人移动的次数最少题目分析:这个题可以简化成两个相互依附的东西同时走迷宫,因为首先要求箱子移动的次数最少,所以我们在最外层设置一层bfs用来搜索箱子的最优解,其次是要求人的移动次数最少,我们可以在内层设置一个BFS用来搜索人的最优解,这样的时间复杂度是n*n*m*m,题目给出的n和m最大为...

2019-09-25 09:08:34 350

原创 POJ - 3322 Bloxorz I(bfs+状态设计)

题目链接:点击查看题目大意:模拟Bloxorz小游戏找出最优解,简单说一下规则,给出一个n*m的矩阵,其中,"#"代表墙,"X"代表起点,"O"代表终点,"E"代表脆弱道路,即承受不住立着的方块,"."代表普通道路题目分析:因为方块总共有三种状态:立着(占1格)、竖着(占2格)、横着(占2格),我们可以将占两个的两个状态压缩到一格中,竖着的(上下分布)我们规定有效方格在上面,横着的(左右分...

2019-09-24 17:35:42 383

原创 HDU - 5335 Walk Out(bfs+路径输出+贪心)

题目链接:点击查看题目大意:给出一个矩阵,要求从(1,1)点走到(n,m)点,要求途径数字依次组成的二进制数字最小题目分析:这个题我的心路历程真的是非常坎坷的,就来稍微记录一下吧,或许对以后做题能有帮助。这样一个中等难度的搜索题,从前一天中午做到了第二天中午,断断续续差不多思考+实现用了少说四个小时了,一直在思考,一直在优化,最后A掉的那一刻感觉收获也是蛮大的。因为整个迷宫只...

2019-09-23 12:43:21 211

原创 HDU - 1728 逃离迷宫(bfs)

题目链接:点击查看题目大意:给出起点和终点和最多的拐弯次数k,问拐弯次数能否在小于等于k的情况下从起点到达终点题目分析:bfs,不过和以往的不太一样,以往的bfs都是每次加入一个点,而这个题目的限制条件是拐弯次数,那么我们可以每次加入一行或一列的点,因为这些点的拐弯次数都是相同的,需要注意一点的是,在while循环中不能判断vis情况,因为如果当前点早就被遍历过了,只能说明该点已经达到最优...

2019-09-22 10:39:08 250

原创 中石油训练赛 - 小说(最短路+二分)

题目链接:点击查看题目大意:给出一个无环无向图,以及k,定义答案是点1到点n的任意一条路径上,所经过的所有边的权值中的第k大值,求答案的最小值。(题目是中文题面,没看懂大意可以直接去看原题目。。)题目分析:因为是要求权值中的最值,不是求最短路是多少,所以一开始想到的是最小生成树,然后从大到小减去K个值,就是答案了,可惜的是,最小生成树的话,不一定会包括最优解,随便举个反例,如果我们的k是1...

2019-09-20 16:10:07 6730

原创 中石油训练赛 - 小A进学校(唯一分解定理)

题目链接:点击查看题目大意:求k进制n的阶乘下末尾0的个数题目分析:之前接触过10进制下求n的阶乘末尾0的个数,当时只知道需要求5出现的个数,但并不知道原理,公式是这样的:int ans=0;while(n){ ans+=n/5; n/=5;}也没有去分析过原理,然后这道题目就要涉及到原理了,我们如果想要求末尾出现0,那么在k进制下就要尽可能多的出现k的幂,...

2019-09-20 15:17:13 214

原创 中石油训练赛 - 招待(思维)

题目链接:点击查看题目大意:给出一个天平,砝码由3的幂次组成,再给出物品重量,求如何摆放砝码能使得天平平衡题目分析:既然给出的砝码是3的幂次组成,那么我们就将给出的物品重量转换为三进制即可,那么表示其每一位只有可能是0,1,2三个数字,我们假设物品摆在A盘,那么:当前位数字为0,就说明该幂次没有贡献,所以不做处理 当前位数字为1,说明我们需要一个该幂次的重量放在B盘才能平衡 当前位...

2019-09-20 13:07:49 228

原创 HDU - 1002 A + B Problem II(大数)

题目链接:点击查看题目大意:大数加法题目分析:第一次用Java写ACM,还是有点小激动滴,有几点需要注意的:公共类名要写Main 不要提交包名 注意输入输出上代码吧,纪念一下:import java.math.BigInteger;import java.util.Scanner;public class Main { public static void ma...

2019-09-19 17:32:17 231

原创 中石油训练赛 - 斗地主(bfs)

题目链接:点击查看题目大意:给出斗地主的规则,以及最终分数,求出最少需要进行几局游戏题目分析:bfs爆搜即可,因为数据范围比较小,我一开始没多想,直接18种情况全部打上去,交了一发T掉了。。bfs被卡T?于是就剪枝,剪了半天还是T,最后拿出秘密武器,用无序map+600进制维护了vis数组,就A了,因为不想出现负数,而且a,b,c的数据范围都比较小,直接都加上300变成正数然后按照600进...

2019-09-18 12:46:46 340

原创 2019ICPC(上海) - Counting Sequences I(dfs打表)

题目链接:点击查看题目大意:对于n>1,求的长度为n的数组个数题目分析:因为长度为n的数组中,组成数字相同但排列组合不同的数组,不算同一种情况,所以我们在求出一种满足条件的数组后,需要考虑所有排列组合的情况,然后枚举的时候也有技巧,如果盲目枚举3000位,那得枚举到何年何月。。我们需要分析一下这个式子,可以得出一个简单地结论,就是当n很大的时候,绝大部分都是1,为什么这么说呢,现在假...

2019-09-17 17:24:20 589

原创 2019ICPC(上海) - Light bulbs(离散化+差分)

题目链接:点击查看题目大意:给出n个灯泡,初始化全都是熄灭状态,给出m次操作,每次操作给出闭区间[l,r],将该区间内的灯泡状态翻转,即熄灭的灯泡变为打开状态,打开的灯泡变为熄灭状态,求最后打开灯泡的数量题目分析:一开始想的是线段树,写到一半发现内存开不下,然后就想树状数组,在开始重新返工之前又想到了简单差分,于是抱着试一试的心态写了一下,果不其然的T掉了,因为没看清楚数据范围。。虽然n是...

2019-09-17 14:54:07 336

原创 2019ICPC(沈阳) - Fish eating fruit(树形dp+树根转移)

题目链接:点击查看题目大意:给出一棵树,给出分类规则:设两点之间的距离为w,则按照w对3取模后的余数分为三组(0,1,2),问两两顶点之间的距离分类后之和为多少,答案输出模分别为0,1,2时的距离和题目分析:这个题目需要我们求以每个点为根节点跑一遍dfs然后对距离加和,但显然复杂度为n*n,会T,既然需要每个点都当一次根节点,我们可以试试用树根转移的思想,这样配合上动态规划,就能将时间复杂...

2019-09-17 12:03:27 306

原创 2019ICPC(徐州) - Colorful String(哈希+二分+动态规划/回文自动机)

题目链接:点击查看题目大意:给出一个字符串,询问该字符串中的所有回文子串中,各有多少不同的字母题目分析:这个题题意很简单,在比赛的时候看到字符串第一反应是哈希,哈希+暴力+线段树果不其然的T掉了。。还超了一秒钟,完完全全的是算法的问题,所以就没再碰那个题了,赛后对这个题一直很在意,磨了一个星期,可算是磨出来了,期间的过程也是艰难险阻嗷,这个题目的正解是用回文自动机来做(好像一切有关于回文串...

2019-09-14 10:59:44 415

转载 (转)KMP算法原理讲解及模板C实现

原作者:v_JULY_v1. 引言本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。然近期因开了个算法班,班上专门讲解数据结构、面试、算法,才再次仔细回顾了这个KMP,在综合了一些网友的理解、以及算法班的两位讲师朋友曹博、邹博的理解之后,...

2019-09-11 15:36:03 265

原创 CodeForces - 451A - Game With Sticks(博弈论)

题目链接:点击查看题目大意:给出n根竖着的棍子,m根横着的棍子,每个人轮流选择交点,被选中的交点需要删除组成该交点的两个棍子,选最后一个交点的人获胜,问谁能获胜题目分析:简单博弈,我们只要选择n和m中较小的那个数,判断奇偶即可,原理很容易想,就不过多解释了。代码:#include<iostream>#include<string>#include&lt...

2019-09-10 22:41:38 285

原创 2019ICPC(南昌) - Hello 2019(动态规划+线段树维护矩阵)

题目链接:点击查看题目大意:给出一个长度为n的只由数字组成的字符串,再给出m个询问,每次询问给出闭区间[l,r],求区间内想要包含“9102”,但不包含“8102”时需要删除字母的最小数目题目分析:这个题和CF上的一个题目很像,只不过那个题是需要包含2018而不包含2017,乍一看只是年份不一样,其实还与他的顺序有关,先挂一个大牛的博客:点击查看上面的博客中详细的解释了2018和201...

2019-09-10 09:42:18 602

原创 2019ICPC(南昌) - Magic Master(模拟)

题目链接:点击查看题目大意:桌子上有按顺序排列n张牌,我们需要循环进行以下操作,直到牌没有拿走第一张牌 将最后一张牌拿到最前面的位置,循环m次 拿走第一张牌然后给出q次询问,每次询问第k张牌是什么时候拿出来的题目分析:比赛的时候不知道被谁带偏了,一直在考虑约瑟夫环,其实这就是个简单模拟,只是用vector写完后一直RE,连本地都跑不过,赛后看了别人的代码,发现真的好简单,偷学一波...

2019-09-09 12:53:03 480

原创 2019ICPC(南昌) - Fire-Fighting Hero(最短路+思维)

题目链接:点击查看题目大意:有一个由n个点,m条边组成的无环无向图,题目保证是连通图,现在每个点代表一个着火点,有一个消防英雄和k个消防队伍比赛救火,他们的具体位置输入时会给出,谁的分数低谁就获胜,分数的定义如下:消防英雄:到每个着火点的最短路中的最大值除以题目中给出的C消防队伍:从k个队伍中选择最优的一个消防队伍(即下半句话中描述的分数最小的队伍),也是取到每个着火点的最短路中的最大...

2019-09-09 10:29:16 586

原创 2019ICPC(南昌) - The Nth Item(矩阵快速幂)

题目链接:点击查看题目大意:给定一个变形版的斐波那契数列,F(n)为其对应的函数值,初始时给定一个q和一个a1,规定下面两个递推式: ^ ans^=最后输出ans题目分析:对于变形版的斐波那契函数,因为给出的n的范围到了1e18,所以肯定不能打表预处理,只能用矩阵快速幂,每次查询都是logn级别的时间复杂度,而总的需要迭代q次,即最坏情况到了1e7*log1e18,是4e8,如果...

2019-09-09 08:45:09 331

原创 2019ICPC(徐州) - so easy(并查集+离散化)

题目链接:点击查看题目大意:给出一个1~n的序列,然后给出m个操作,每个操作分为下列两种情况:1 x:让数字x不可用 2 x:查询包括x在内的右侧的第一个可用数字题目分析:因为n给到了1e9,而查询只有1e6,所以我们必须将数据离散化,我最初的思路是先将1e6个查询记录下来,将操作1使用过的数字放到一个有序数列中,离线处理,可以倒着一步步模拟,每次遇到操作1就将其删除(即加入回原数组中...

2019-09-07 21:40:04 1040 1

原创 2019ICPC(徐州) - Who is better?(中国剩余定理+斐波那契博弈)

题目链接:点击查看题目大意:给定k组a和b表示同余式,分别代表n%a=b,求出n后,代表有n个敌人,有两个人我们称为A和B,从A开始杀敌,第一次A可以杀至少一个敌人,至多n-1个敌人,接下来B与A轮流杀敌,每次杀敌的数目必须处于1~2k之间,k为上个人杀敌的数目。题目分析:生硬的将中国剩余定理和斐波那契博弈结合在了一起,两个模板套起来就OK了,还是见识太少了代码:#include...

2019-09-07 19:29:18 517

原创 斐波那契博弈(证明+结论)

挂个大佬的博客:点击查看证明在大佬博客里,这里记一下结论,以后白嫖:有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,必败。其他情况必赢f[i]:1,2,...

2019-09-07 19:22:55 422

原创 扩展中国剩余定理(模板)

证明:挂个大佬的博客:点击查看挂上代码供以后白嫖:LL n,m[N],a[N];///模数为m,余数为a, X % m = aLL extend_gcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1,y=0; return a; } else { ...

2019-09-07 19:18:59 243

原创 华东理工月赛 - 站军姿(概率公式)

题目链接:点击查看题目大意:在圆上随机生成n个点,求n个点在同一侧的概率题目分析:做这个题的时候感觉是数论,从网上搜了一下题面,搜到了一个算法,没看懂证明,只是看懂了式子(式子谁看不懂。。),大佬博客:https://blog.csdn.net/zmazon/article/details/8547278,公式:然后就尝试实现,因为涉及到了求逆元,恰好模又是一个素数,所以直接用费马小定...

2019-09-06 22:57:26 219

原创 2018宁夏邀请赛 - Copy and Submit II(推公式)

题目链接:点击查看题目大意:给出一段程序,你可以选择直接提交,也可以不直接提交题目分析:挺好玩的一个题,内存只给了512K,如果直接提交原代码,数组都开不出来,更别说递归了,这个题显然不能用记忆化搜索(数组开不了),也不能用递归(n太大,时间不够用),所以我们应该往递推方面去思考,如果直接以k开始往下展开,会很抽象,我们可以以具体的实例来展开试试:写三个具体的实例再提取公因...

2019-09-05 17:06:00 133

原创 高精度运算模板(大数模板)

现在还没学java。。所以没法用java偷懒,先存一波C加加的大数运算模板,以备不时之需补充:关于base参数的使用:代表字符串a和b都是在base进制下的数字,转换成10进制后进行运算后,返回的答案为base进制,默认为10进制,进制可以随意设置,用字符串ss和数组mp互相映射,使用之前用init函数初始化一下mp数组即可一、两个正数的加法:使用方法:输入完string a和stri...

2019-09-05 16:02:14 495

原创 HihoCoder - 1828 Saving Tang Monk II(bfs+动态规划/bfs+优先队列)

题目链接:点击查看题目大意:孙悟空要走迷宫去救唐僧,给出n和m约束迷宫大小:迷宫中:S代表起点 T代表终点 B代表氧气区,经过可以获得一罐氧气,最多储存5罐氧气 #代表毒气区,经过需要花费2个时间单位,并且消耗一罐氧气 P表示加速区,经过可以减少一个时间单位 .表示正常路段题目分析:写过买盐的那个题之后,写这种题就很顺手了,这个题需要开一个三维的数组维护状态,其中两维用来描...

2019-09-05 10:26:47 197

原创 HDU - 4784 Dinner Coming Soon(bfs+动态规划+优先队列)

题目链接:点击查看题目大意:有n个点,m条边,一个人要在时间T内从1走到n,并在途中进行交易,获得尽可能多的钱。这个人身上最多能带B包盐,每到一个地方都需要交纳一定的钱数,并且经过一定的时间才能通过,每个地方的盐价不同,在这个地方他可以对身上的盐进行买/卖/不买也不卖这三种操作,要求无论任何时候身上的钱数都不能小于0。除此之外,还有K个平行世界,编号为0~K-1,这个人初始化在第0个世界,并且...

2019-09-05 08:50:55 227

原创 2019ICPC(南京) - Greedy Sequence(线段树)

题目链接:点击查看题目大意:题意不明(英语渣),网上的简洁版转化:对于每个i,所在下标p[i],在[p[i]−k,p[i]+k]中找到小于i的最大数x,然后ans[i]=ans[x]+1即可。题目分析:裸的线段树+离线操作,因为求小于i的最大数x,所以可以维护一个最大值的线段树,然后离线对于每个i升序询问完后加入到线段树中即可,看不懂题啊啊啊啊啊代码不讲了,一点细节也没有,裸的板子...

2019-09-04 09:47:04 332

原创 HihoCoder - 1829 Tomb Raider(暴力)

题目链接:点击查看题目大意:给出n个环形字符串,求n个字符串的最大公共子序列,如果有多个长度相同的答案,输出字典序最小的题目分析:这个题数据给的很小,n只有10,字符串的长度只有8,所以可以直接暴力,但是我没认真想这个题,暴力也没个思路,一开始是想两两求lcs,但想了想不好实现,后来听了学长说了思路才一下子恍然大悟,可以把第一个字符串的所有子串储存起来,一共就只有39202种(组合数),按...

2019-09-03 21:06:12 340

原创 HihoCoder - 1831 - 80 Days(暴力)

题目链接:点击查看题目大意:给出n个城市,其编号分别为1~n,其之间首尾相连组成一个环形,每次经过一个城市将获得ai的钱,每次离开一个城市将花费bi的钱,要求选择一个城市作为起点,然后顺时针走完n个城市,并且保证路程中的钱数不能小于0题目分析:这个题目因为说到了一点总的n不大于1e6,那完全可以暴力,一层枚举起点,一层进行前缀和判断是否符合条件,如果符合条件就输出该序号,如果不符合条件继续...

2019-09-03 10:22:06 227

原创 2019ICPC(南京) - Holy Grail(最短路)

题目链接:点击查看题目大意:给出一个图,包括n个点和m条边,然后给出6个查询,每次询问给出两个点u和v,输出v到u的最短路的相反数,并将u到v,权值为刚才求出的答案这条边加入到图中题目分析:裸的最短路,不过有负边权,但是n很小,只有300,用spfa或floyd都可以,当时比赛的时候愣是没读懂题目是什么意思,题目整的花里胡哨的。。也是服了,不过用floyd的时候注意一下,每次重新跑最短路的...

2019-09-02 15:57:48 358

原创 2019ICPC(南京) - super_log(欧拉降幂)

题目链接:点击查看题目大意:求(a^a^a^a....^a)%mod,其中有b个a题目分析:一道数论题,被我们做成了模拟题。。首先因为涉及到指数并且指数都还比较大,所以需要知道一个降幂公式:我们需要明白这个公式的第一行是狭义欧拉降幂,第二行和第三行是广义欧拉降幂,所以我们可以直接通过广义公式就可以不用考虑互质的情况了,特别需要注意一下广义的的公式中,单纯的取模和取模后在加欧拉函数值...

2019-09-02 09:03:21 340

空空如也

空空如也

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

TA关注的人

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