自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PTA A1131 Subway Map(30)

题目:click me~题意:给出几条地铁线路,查询从起点站到终点站的经停次数最少的路线,如果经停次数相同,输出换乘次数最少的路线。解题思路:需要一遍DFS,DFS中要维护两个变量:mincnt中途经停最少的次数,mintransfer需要换乘的最小次数步骤一:计算换乘次数的方法:在line[10000][10000]的数组中保存每两个相邻站中间的路是几号线。从头到尾遍历最终的路径,preline是前一小段的线路编号,若当前小段的线路编号与preline不同,说明有一个换乘,累加器加1;步骤

2020-07-05 11:29:18 289

原创 PTA A1034Head of a Gang(30)

题目:click me~题意:给出若干人之间的通话记录(视为无向边),有通话记录的两人视为一组,这些通话将他们分为若干组。每组总的边权之和为该组的权值,每个人的点权为该人参与的通话长度之和。再给定一个阈值k,若某组的权重超过k,并且该组人数大于2,那么视为犯罪团伙“gang”,每个犯罪团伙有且仅有一个头目,头目为该组中点权最大的人。要求输出犯罪团伙个数,并且按照头目姓名字典序输出每个犯罪团伙的头目及成员人数。解题思路:步骤一:首先...

2020-06-23 23:48:56 202

原创 PTA A1056Mice and Rice(25分)

题目:click me~题意:给出NP只老鼠的质量和它们的初始顺序,按每NG只分为一组,最后剩下的为一组。对每组老鼠,选出质量最大的1只晋级,晋级的老鼠数就等于该轮分组组数。对这些晋级的老鼠再按上面的方法每NG分为一组,选出质量最大的一批继续晋级,这样到最后只剩下1只老鼠,排名为1。按照原输入顺序输出这些排名。解题思路:步骤一:开出一个结构体mouse,用以记录每只老鼠的质量和排名。定义一个队列,在算法过程中按顺序处理每轮的老鼠。步骤二:首先算出组数group。1.用temp记录

2020-06-13 23:26:29 216

原创 PTA A1096 Consecutive Factors(20分)

题目:click me~题意:给出整数N,需要找到连续因子的最大个数,若有多个,输出第一个数最小的那个序列。解题思路:步骤一:首先注意到,N不会被除自己外的大于sqrt(N)的整数整除,因此只需要从2~sqrt(N)遍历连续整数的第一个,求此时N能被最多多少个连续整数的乘积整除。在此过程中,如果发现长度比当前最长长度anslen更长的情况(anslen初始化为0),就更新anslen和对应第一个整数ansi。步骤二:若遍历结束后anslen还是等于0,那么说明答案就是N本身;否则,输出[an

2020-06-11 22:14:37 365

原创 PTA A1049Counting Ones(30分)

题目:click me~题意:给出一个数字n(n<=2^30),求1~n中出现数字1的总数。解题思路:这道题用枚举来做肯定是会超时的。恰当的方法是寻找特殊数字找规律,再拓展到一般去。令n=30710,令数位从低位到高位分别为1号位、2号位、3号位、4号位及5号位。(1)考虑1号位在1~n过程中在该位可能出现的1的个数n在1号位左侧是3071。由于1号位为0(小于1),因此在1~n中,仅在高四位为0000~3070的过程中,1号位才可取到1。因此在1~n过程中,1号位将出现3

2020-06-09 21:22:56 180

原创 PTA A1044Shopping in Mars (25分)

题目:click me~题意:给出一个数字序列和一个数S,在数字序列中求出所有和值为S的连续子序列,(区间下标左端点小的先输出,左端点相同时右端点小的先输出)。若没有这样的序列,求出和值大于S但最小的子序列。解题思路:令sum[i]表示A[1]到A[i]的和值,由于序列都是正值,因此sum[i]一定是严格单调递增的,(初始化sum[0]=0)。这样做的好处在于,若要求连续子序列A[i]到A[j]的和值,只需要计算sum[j]-sum[i-1]即可。有了严格单调递增的sum数组,那就可以用二分

2020-06-06 19:13:10 132

原创 PTA A1010 Radix(25分)

题目:click me~题意:输入4个正整数N1,N2,tag,radix,tag=1表示N1为radix进制数,tag=2表示N2为radix进制数。N1,N2不超过10个数位,每个数位均为0~9或a~z。0~9表示数字0~9,a~z表示数字10~35。求未知进制的那个数是否存在和另一个数在十进制下相等的进制,若存在,则输出满足条件的进制;否则输出“Impossible”。解题思路:步骤一:将已知进制的数放在N1,未知进制的数放在N2,便于后面统一计算。步骤二:将N1转换为十进制,使用

2020-06-05 22:24:46 196

原创 PTA A1033 To Fill or Not to Fill (25分)

题目:click me~题意:起点和终点的距离为D,油箱最大油量Cmax,单位汽油能支持前进Davg,给出N个加油站的单位油价和距离起点的距离。汽车初始位于起点,油箱为空。求从起点到终点的最小花费。若无法到达终点,则输出最大行驶距离。解题思路:步骤一:把终点视为单位油价为0,离起点距离D的加油站,将所有加油站按距离从小到大排序。如果最近的加油站距离不为0,那么无法出发(初始油箱为空),输出“the maximun travel distance =0.00";如果最近加油站距离为0,则进入步骤二

2020-06-03 12:26:38 144

原创 PTA B1020 月饼(25分)

题目:click me~题意:有月饼需求量D,已知n种月饼各自的库存量和总售价,问如何销售这些月饼,使得销售收益最大。解题思路:步骤一:采用“总是选择单价最高的月饼出售,可以获得最大的利润”的贪心策略。因此求出所有月饼的单价,从高到低排序。步骤二:从单价最高的月饼开始枚举:1.若该种月饼库存量不足以填补需求量,那么将该种月饼全部售出,需求量减去该月饼的库存量,收益值增加月饼的总售价。2.若该种月饼库存量足够供应需求量,那么只提供需求量大小的月饼,收益值增加月饼单价*需求量,需求量减为

2020-06-03 09:31:38 179

原创 PTA A1084 Broken keyboard(20分)

题目:click me~题意:给出两个字符串,第一个为原本想要输出的字符串,第二个是坏键盘实际输出的字符串。解题思路:需要解决两个问题:1.如何在英文字母不区分大小写的情况下判断哪些字符在第一个串中出现却没在第二个串中出现。2.如何保证一个字符只输出一次,且英文字母全用大写。步骤一:对于第一个问题,枚举第一个字符串中的字符,对当前枚举字符c1,枚举第二个字符串中的字符c2,若遇到小写字母,则全部转换成大写。之后判断c1和c2是否相等,若相等,说明在第二个字符串中出现过,不予输出;若不

2020-06-01 15:26:27 142

原创 PTA A1075PAT Judge(25分)

题目:click me~题意:PAT考试有N个考生,K道题,给出M条提交记录。交题的分值要么是-1(没有通过编译),要么是【0,满分】区间内的数。要求对考生按下面规则排序:1.总分由高到低;2.若总分相同,则按完美解题数由高到低;3.总分+完美解题数都相同,按准考证号由小到大排序。输出规则注意点:1.总分相同,则排名相同,但每个人都占一个排位。2.若某考生整场考试都没提交,或者没有通过编译的提交,那么不输出该考生信息。3.对需要输出的考生,考生某道题没有提交过,那么输出“

2020-05-31 13:02:12 155

原创 PTA A1082 Read Numer in Chinese(25分)

题目:click me~题意:输入一个数字,要求输出中文读数字的拼音。解题思路:1.分成3节(亿节,万节,个节)每节的读音相同:x千xx十x,每输出一节后加上亿/万(个节省略)。2.零的输出:在数字的某节中,某个非零位(该节千位除外)的高位为零,那么需要在该非零位前额外发音一个零。例如:3030三千零三十;10003一万零三;30003000三千万三千(没有额外的零)。可以用一个flag来判断是否存在累积的零。code:#include<iostream>#i

2020-05-30 17:11:31 151

原创 debug错误汇总

1.赋值语句中=写成==。maxheight=height;2.遍历容器vector的范围。for(int i =0;i<temp.size();i++) 循环判断条件不可以用<=.3.set.end()返回的是set的大小,而不是set最后一个元素。

2020-05-28 13:30:14 1585

原创 PTA1021 Deepest Root (25分)

题目:click me~题意:给n个点,n-1条边,判断是否连通图。若是,找出能使树高最高的根结点(如果这样的结点不止一个,那么升序输出它们);若不是,输出连通块个数。解题思路:步骤一:判断是否连通图;步骤二:先任意选择一个结点开始遍历树,获取能达到的最深的顶点(记为A集合)。若是连通图,再从A中任选择一个结点出发遍历树,获取能达到的最深的顶点(记为B集合),那么A、B的并集即为所求的deepest root。Tips:1.标志一个visit数组,每次dfs时,都把访问到的结

2020-05-28 11:41:23 181

原创 PTA1018 Public Bike Management (30分)

题目:click me~题意:城市公共自行车可在任意站点借还车,每个站点最佳状态是停一半的自行车。管理员在站点0,只要有problem station需要,管理员就要走最短路径 去调整problem station 以及最短路上的站点到最佳状态。1.若是有几条相同长度的路径,则取需要从站点0带出自行车最少数的那条路。2.满足1,若是需要自行车数仍然相同,则取要带回站点0自行车最...

2020-02-21 19:39:14 195

原创 PTA 1017 Queueing at Bank (25分)

题目:click me~题意:给出n个客人来到银行的时间以及窗口数k,求出平均等待时间。解题思路:1.客人,窗口各开一个vector,对客人来到的时间进行升序快排。2.遍历所有客人,对每个人先找出当前最快排到的窗口,再计算客人的服务时常,并更新窗口等待数据。code:#include<iostream>#include<vector>#in...

2020-02-19 20:57:23 130

原创 hdu1078——FatMouse and Cheese(dfs+dp)

题目:click me~题意:在n*n的矩阵中,FatMouse从(0,0)出发,每次只能走上下左右四个方向,一步最多k格,而且跳到下一格必须满足条件:下一格的奶酪>本格的奶酪。要求能吃到的最大奶酪数。解题思路:用dp配合dfs来实现,dp[i][j]表示从(i,j)格出发能够吃到的最大奶酪数,整体还是用dfs来操作,套两层循环,第一层表四个方向,第二层表总共走几格。co...

2020-02-10 22:37:45 149

原创 hdu4283 You Are The One(区间dp)

题目:click me~题意:有n个人拍成一排要上台,每一个人都有一个diaosi值D,第i个上台的人的不满意度为。有一个黑屋子,类似于栈(先进后出)的操作,排队的人有两种选择:(1)、直接上台(2)、暂时进黑屋子要求你给他们合适的排个序,使得不满意度总和最小。解题思路:用区间dp,表示最小总不满意度,区间中的第i个人可以是第一个出场的,也可以是最后一个j-i+...

2020-02-09 18:32:47 172

原创 【动态规划】FatMouse's Speed

题目:Problem DescriptionFatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take the data on a collection of mice and put as large a subset of this data as...

2020-02-07 22:49:40 382

原创 【图论】Cow and Snacks 并查集

#题目:The legendary Farmer John is throwing a huge party, and animals from all over the world are hanging out at his house. His guests are hungry, so he instructs his cow Bessie to bring out the snac...

2020-01-29 10:45:50 266

原创 【图论】Secret Passwords并查集

题目:One unknown hacker wants to get the admin’s password of AtForces testing system, to get problems from the next contest. To achieve that, he sneaked into the administrator’s office and stole a pie...

2020-01-28 22:32:30 159

原创 Monte Carlo求地图面积【数学建模】

https://blog.csdn.net/yillc/article/details/6740425基本思想:所求解的问题是某随机事件A出现的概率,通过某种实验方法,得出A的频率,以此估计A事件出现的概率。蒙特卡洛求面积:随机在矩形里面产生大量的随机点(数量为N),计算有多少点(数量为c)落在区域面积内,S是矩形的面积,那么S*(c/N)就是所求区域的面积。1.求曲线围成的面积:...

2019-11-28 23:45:12 1836

原创 层次分析法(AHP)【数学建模】

层次分析法(Analytic Hierarchy Process):将半定性半定量问题转化为定量问题。适用于难以完全定量分析的复杂问题,比如:资源配送,选优排序,政策分析,冲突求解,决策预报。需要用matlab将评判矩阵转化为因素的权重矩阵,做法:求解矩阵的最大特征根,对应阵向量。...

2019-11-10 00:17:42 267

原创 K-means聚类【数学建模】

K-means(K-均值聚类算法)是划分聚类分割的方法,将一个有N个元组或记录的数据集,分裂成K个分组,每个分组就是一个聚类,K<N,每个分组满足: 1.每个分组至少包含一个数据记录 2.每个数据记录属于且仅属于一个分组算法步骤:1.任意选择k个对象作为初始聚类中心2.计算每个对象与聚类中心的距离,并根据最小距离重新划分3.重新计算聚类中心...

2019-10-28 07:18:00 2666

原创 POJ1502 mpi-maelstrom dijkstra

题意:给出一个无向图,一共n个点,要求第一个点到其余各点的最短路的最大值。解题思路:这道题用dijkstra算法。算法具体如下:1.初始化 :所有点到源点的距离为无穷大2.用vis数组表示有两个集合,1表示最短路已经求得(用数组d表示),0表示未求得最短路,做n遍循环,遍历每一个点时,找到d最小的那个点,把它的vis标为1,并且更新和它相连的点的d。3.这样所有点的最短路就都求...

2019-09-05 23:17:52 110

原创 【最短路问题】Til The Cows Come Hone HDU 2387

题意:给一张图,1为起点,n为终点 求有权图单源最短路。解题思路:dijkstra+堆优化。用优先队列来实现最小堆。新学到了优先队列和pair的用法优先队列:priority_queue < P, vector < P >, greater<P > >que;这样是定义了升序队列。包含在头文件<queue>中。pair:定义...

2019-08-08 23:32:09 104

原创 【搜索】hdu2616 Find a Way

题意:给出两个初始地点Y,M,还有几个终点@。要求两个初始点到这些终点的最少步数之和的最小数。解题思路:两遍bfs,给kfc所在地加一个量用res[i][j][k]表示,k=0是Y到(i,j)的最少步数,k=1是M到(i,j)的最少步数。最后遍历地图找到和最少的。代码如下:#include<cstdio>#include<queue>#include&...

2019-08-07 22:45:12 100

原创 【搜索】hdu1495非常可乐

题意:给三个杯子,容量分别为S,M,N。初始S满,后两个为空。两两之间可以倒水,要求到最后有两个杯子中的水量相等时最少的倒水次数。解题思路:三个杯子每个状态为一个顶点,构成一张图,用三元邻接矩阵map[i][j][k]表示。每次倒水有两种情况:a给b 之后1.a全给了b,2.b满了但a还有剩余。一开始我感觉这样两两倒水有六种组合,实现起来会很麻烦。后来看了大神的发现可以用两个for循环,i,j...

2019-08-07 21:01:52 100

原创 【搜索】poj3414倒水问题

题意:给出a,b两个水杯的容量,和一个要达到的水量c。总共3种操作,两个杯子那就是六种。要求通过这六种操作来时两个杯子其中有一个水量为c的最少操作数。解题思路:这道题用到的是广搜bfs,水量(i,j)代表一个点,通过这六种操作可以变成另一个点,那么这两个点之间就是有路的,每个点有没有访问过用邻接矩阵vis【i】【j】存储。代码如下:#include<iostream>#...

2019-07-31 14:41:54 116

原创 【搜索】poj3126Prime Path

题意:给出两个四位素数,修改第一个数,每次只能改掉四位中的一位并且改后仍是素数,求从第一个四位数改成第二个四位数最少的修改次数。解题思路:这里的每一个四位数都相当于一个点,如果一个四位数u改掉一位数字成另一个四位数v,即u->v单向有路,如果四位数是素数,那就是这个点可以跳,否则不行。剩下的用广搜数步数就好了。判断素数可以先打表:void prime(){ memset(i...

2019-07-30 22:55:43 84

原创 【搜索】filptile poj3279

题意:给出黑白棋盘格,每一次翻转能使自己和上下左右的格子黑白反转,求出为了使棋盘格全为白色的最少翻转数。解题思路:二进制枚举第一行的所有2*m种 01组合,进行dfs计数,打印计数最少的那一次的每一个格子的翻转数。代码:#include<iostream>#include<cstdlib>#include<queue>#define N 20...

2019-07-30 10:37:39 126

原创 【PTA】hashing(hard version)

题意:给出一个散列表,哈希函数是H(x)=x%N,冲突处理方法是线性探测,按照散列表打印出输入的顺序,如果有多种选择先输出小的那个。解题思路(看了姥姥的慕课和别人的代码):有冲突的元素有先后顺序,可用有向图(邻接矩阵)来存储,然后拓扑排序。代码如下#include<stdio.h>#include<stdlib.h>#include<queue&gt...

2019-07-28 01:13:48 265

原创 codeforces contest1143

contest1143C题意:给出一棵树,结点有c值,c=1表示不尊重双亲,反之尊重;需要删除其中的不尊重双亲并且没有孩子尊重它的结点,按照结点编号从小到大输出这些点,没有这样的结点就输出-1解题思路:每个结点是否要被删除都是孤立的,也就是说,删除一个结点对其他的点要不要删除没有影响。那我们就算出初始状态就好了。怎么做呢。从小到大扫描每一个结点,先判它自己尊不尊重双亲,再判有没有孩子尊重它...

2019-07-12 21:20:13 127

原创 【数论】容斥 hdu1796

Problem Description Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For exam...

2019-06-04 22:35:23 90

原创 树链剖分+线段树 bzoj1036 树的统计

一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身Input输入的第一行为一个整数n,表示...

2019-05-30 09:51:36 165

原创 【数据结构】 线段树 区间修改&区间查询 cdoj1057

题目链接:https://acm.uestc.edu.cn/problemDescription秋实大哥是一个儒雅之人,昼听笙歌夜醉眠,若非月下即花前。所以秋实大哥精心照料了很多花朵。现在所有的花朵排成了一行,每朵花有一个愉悦值。秋实大哥每天要对着某一段连续的花朵歌唱,然后这些花朵的愉悦值都会增加一个相同的值vvv(vvv可能为负)。同时他想知道每次他唱完歌后这一段连续...

2019-05-28 10:52:46 172

原创 最近公共祖先 dfs+rmq-st hihocoder1069

参考:https://www.cnblogs.com/pczhou/p/4297132.htmlrmq-sthttps://www.cnblogs.com/five20/p/7531644.html代码:#include<iostream>#include<cmath>#include<map>#include<vector>#...

2019-05-26 23:18:35 340

原创 【图论】强连通分量 tarjan UOJ#146

题目链接:http://uoj.ac/problem/146求强连通分量的个数 。1.有向图中:强连通:两个节点可以互相到达强连通图:图中的任意两点都可以互相到达也即任意两点都是强连通强连通分量:图中的子图是强连通图2.Tarjan算法:用来求有向图的强连通分量。基于DFS算法,每个强连通分量为搜索树中的一颗子树。搜索时,把当前图中未处理的点加入一个堆栈,回溯时可以栈顶...

2019-05-26 14:19:18 133

原创 【图论】最短路算法 spfa&dijkstra+配对堆优化 hdu1874

目录1.spfa(Shortest Path Faster Algorithm):2.dijkstra+配对堆优化:1.spfa(Shortest Path Faster Algorithm):可以处理负边但不能处理负环,时间复杂度为O(kN)k为所有顶点进入队列的平均数,N为顶点个数。算法思想:源点为s,s到i的当前最短路径为d[i],初始时,s到每个点的d[i]都为...

2019-05-25 18:29:26 469 1

原创 C语言——变量的寿命与可见性小结(局部变量 外部变量的区分)

局部变量 外部变量 存储类别 auto register 局部static 外部static 外部extern 存储方式 动态 静态 存储区 动态区 寄存器 静态存储区 生存期 函数调用开始至结束 程序整个运行期间 作用域 定义变量的函数或复合语句内 本文件 其他文件 ...

2019-05-24 21:56:44 1277

空空如也

空空如也

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

TA关注的人

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