自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2017年湖南省第十三届大学生程序设计大赛 I 题 “Nearest Maintenance Point” CSG - 1109(最短路,dijkstra)

①所得新路径长度

2022-10-09 22:37:59 116

原创 2016年湖南省第十二届大学生程序设计大赛 题 “地铁” CSG - 1139(边到边最短路,dijkstra)

很明显是一个单源最短路的题目,但是如果是点到点的话,每次到达某个点所乘的轨道线编号可能不同,如果创一个不同轨道线到达点的最短路径数组的话大小就10^10了会爆,所以干脆就采用边到边的最短路,dijkstra里面堆里存的边代表着通过某条边号到达的该点。样例二:从1->n有两种路线 ①1->2->3 花费两条轨道时间1+1,以及从1号线换到2号线的时间1,总共时间3。给一个双向图,点是地铁站,边是轨道,每条边都有不同的轨道线编号,轨道往返所需时间一样。求从 1 号地铁站到 n 号地铁站的最短时间。

2022-10-09 22:13:35 104

原创 2016年湖南省第十二届大学生程序设计大赛 B题 “有向无环图” CSG - 1135(dfs,记忆化搜索,逆元)

给一个有向无环图,求 图中每个点到每个点的路径条数 * 起点的a值 * 终点的b值,结果模1e9+7。弄清dfs过程后,做法就显而易见了。b2=1,1到3,两条路径,2。b3=2,2到3,一条路径,1。1到2,一条路径,1。

2022-10-09 21:50:32 126

原创 2015年湖南省第十一届大学生程序设计大赛 E题 “简单的图论问题?” CSG - 1116(最短路,dijkstra,图论)

样例一:① 正常路线 10->3->6->14->8,值为41。② 转弯路线 10->3->6->2->6->14->8,值为49。② 若每一步不能与前一步的方向相同,也就是只能转弯或者后退,输出从这时从{r1,c1}到{r2,c2}最短路径。① 只能上下左右走,输出从{r1,c1}到{r2,c2}最短路径,路径长度就是所走格子的和。给一个n*m的矩阵,每一格要么是 * 代表障碍 ,要么是可走的1-100的整数。算是板子题,开始想的贪心,后来还是得弄四个方向的最短路才行。第一问直接dijkstra即可。

2022-10-09 21:20:19 94

原创 2012年湖南省第八届大学生程序设计大赛 I题 “Collecting Coins” CSG - 1065(搜索,bfs,dfs)

m的矩阵,‘S’是起始点,‘O’是箱子,‘C’是硬币,‘X’是障碍,‘.’是路,只能上下左右走,不可越界。*,方向为推的方向,推完一次后箱子就不能推了变成障碍,推完所处位置为箱子之前所在位置并且该店变成路。所有地图的状态存到一个队列,dfs来获取推一次箱子的新状态并存入队列,每次的状态都用bfs来获取能走到的硬币。由于箱子只能推一次,所以可以用dfs来遍历当前状态所有推箱子的情况,然后用bfs来收集能走到的点的硬币。知道能用bfs得到每个状态的硬币量后接下来就是找出所有推箱子的状态了。

2022-09-19 14:15:34 84

原创 2012年湖南省第八届大学生程序设计大赛 F题 “Kingdoms ” CSG - 1062 (最小生成树,二进制枚举)

题目数据给的很有启发性,n最大为16。再将只含枚举点的边取出来,做最小生成树,求出建好该图的最小费用,然后和所给费用k比较,若小于等于则可行,将获得的价值与结果进行比较更新。给n个点和m条边,每个点都有价值ai,每条边费用为bi,现在给你k费用,让你建一个图,求该图中与1直接或间接相连的点的总价值最大为多少。题目要求的是与1直接或间接相连的点,所以最开始1必在所建图中,最后得出的最小生成树的点必等于边+1,不然则不是树,不全部相连。有时想不出来好的方案可以根据数据猜做法。

2022-09-19 13:13:44 61

原创 2011年湖南省第七届大学生程序设计大赛 F题 “打怪升级” CSG - 1040 (dfs,剪枝,暴力)

6个参数,表示当你的能力值为p1时,消灭这个怪物需要t1时间,能力值为p2时需要t2时间,p1

2022-09-19 12:45:05 70

原创 2011年湖南省第七届大学生程序设计大赛 C题 “多连块拼图” CSG - 1037 (搜索)

给一个大多连块和小多连块,你的任务是判断大多连块是否可以由两个这样的小多连块拼成。小多连块只能平移,不能旋转或者翻转。中间那幅图的问题在于其中一个小多连块旋转了,而右图更离谱:拼在一起的那两个多连块根本就不是那个给定的小多连块(给定的小多连块画在右下方)。要求第一个图是否涵盖第二个图,我们可以把第二个图的点记录一下,以最上面最左边的点为原点,把其他所有点的坐标与原点的差值存起来。搜第一个图时,找到一点后只用判断以该点为原点,其他加上差值的点是否符合条件就行,如果有一点不满足则不涵盖,所有点满足才涵盖。

2022-09-19 12:15:43 91

原创 2010年湖南省第六届大学生程序设计大赛 G题 “Repairing a Road” CSG - 1052(floyd 求函数极限)

所以我们可以先把 t + vi * ai^(-t) 取最小值时的 t 求出来,然后再比较,若 t < dis[1][u],那么结果就为 dis[1][u] + res,所以要让res 尽可能地小, 所以 t 最大取 dis[1][u],若 t >= dis[1][u],则 t 即为 t + vi * ai^(-t) 取最小值时的 t。样例二: 因为只有一条边,所以时间为函数 t+vi * ai^(-t) 的最小值 (t为修补的时间,t>=0)

2022-09-06 16:15:59 177

原创 2010年湖南省第六届大学生程序设计大赛 F题 “Biggest Number” CSG - 1051 // UVA 11882 (dfs+bfs+剪枝)

所以要来一次结果预判,首先可以判断接下来可能到达的数字个数,也就是dfs到某个点,再bfs一次得出可能到达的数字个数,然后还可以进一步对其进行一个降序排序,让其结果最大,然后将bfs可能得到的最大结果加上dfs已经得到的结果相结合,再与当前答案相比,若预判的最大结果还比答案小,则返回,完成剪枝。一个r行c列的矩阵,里面只有1-9的数字和‘#’,最开始可以随意挑选一个数字然后可以上下左右移动,问所走的路径所含数字最大为多少。很明显是个搜索题,虽然数据很小,但是dfs暴力还是会TLE,所以要想办法剪枝。

2022-09-05 14:33:13 269

原创 HDU - 3749(点双连通,求点所属连通块)

通过样例2我们可以看出,若u和v的路径之间包含了能分割它们的割点,那么它们的路径必经过该点,所以路径只有一条。一堆废话,大概意思就是,给你一个无向无重边图,点从0到n-1,然后q次query,每次给两个点u,v,问以u为起点,v为终点,它们属于几条路径(要求:除了u和v,其它的点在所有路径中都只能出现一次)。1到3的路径 1->0->2->3,1->2->3 两条,但是题目要求除了起点和终点,其余的点只能出现1次,而在这里点2出现了两次,所以最后要舍去一条路径,答案为1条。......

2022-08-04 07:26:04 214 1

原创 HDU #5879 Cure

Problem Description Given an integer n, we only want to know the sum of 1/k2 where k from 1 to n. Input There are multiple cases. For each test case, there is a single line, containing a single positive integer n. The input file is at most 1M. Output The r

2020-12-06 22:15:11 85

原创 HDU #2138 How many prime numbers

原题地址 Problem Description Give you a lot of positive integers, just to find out how many prime numbers there are. Input There are a lot of cases. In each case, there is an integer N representing the number of integers to find. Each integer won’t exceed 32-b

2020-12-06 22:04:44 131

原创 LightOJ #1010 - Knights in Chessboard

原题地址 题目意思:m*n的棋盘上,骑士不能相互攻击,找出能放骑士的最大数,骑士的攻击位置如图所示 输入:整数T(<=41000),测试数量,每一个测试包含两个整数m,n(1<=m,n<=200),表示行数m和列数n 输出:每一个测试输出一个整数,表示能放的最大骑士数,并标上Case数 思路:找规律,很明显,如图,骑士放在黑格位置时,只能攻击白格上的敌人,所以只用求出每个棋盘上黑格的数量,利用向下取整,数量即为(m*n+1)/2,此时要求m,n>=3 当然若m或n等于1时,能放的最

2020-12-06 20:59:33 124

原创 LightOJ #1008 Fibsieve`s Fantabulous Birthday

原题地址 题目意思: 张三开生日派对,被送的一堆礼物中有一个N*N的玻璃棋板,每一格都有一盏灯,棋板打开时,每秒钟都会有一盏灯闪亮然后熄灭,亮灯的顺序如表,(比如 第3秒的时候亮编号为3的灯,坐标为(2,1),第10秒亮编号为10的灯,坐标为(1,4)),然后排列有规律,棋板的长度N足够大 输入:T(<=200),测试数量,然后下面T行,每一行一个整数S(1<=S<=10^15),表示时间秒 输出:每一个测试输出亮灯的坐标,并写上Case数。 思路:找规律,不难发现, 第一行,从1后,每

2020-12-06 20:44:14 85

原创 POJ #2586 Y2K Accounting Bug

Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vital data for preparing annual report for MS Inc. All what they remember is that MS Inc. posted a surplus or a deficit each month of 1999 and each month when MS Inc. pos

2020-12-06 20:10:14 274

空空如也

空空如也

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

TA关注的人

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