自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客算法周周练17 解题报告

牛客算法周周练17A - 生成树(STL)牛客算法周周练17C - 成绩分析(签到题)牛客算法周周练17D - 刺客信条(dfs剪枝 | 优先队列 + bfs)比赛时状态不太好,再加上写D题搜索一直TLE,心态有点炸…只写出了签到题,赛后看完题解赶紧AD太简单了… 惭愧惭愧...

2020-07-29 14:53:40 206

原创 牛客算法周周练17D - 刺客信条(dfs剪枝 | 优先队列 + bfs)

题目大意:给出一张n * m的地图,每经过一个建筑都需要一定的时间,而经过ABC要花费100,要求输出从S到E的最短时间。解题思路:思路一:dfs剪枝输入地图的时候用char输入,然后转成int型即可,然后dfs跑图,因为有多条路到达E而取最短,所以维护一个最小值ans,如果当前没到E,而步数 >= ans,则return,如果当前到了,则ans和s取一个最小值。AC代码:#include <cstdio>#include <iostream>#include .

2020-07-29 14:51:00 221

原创 牛客算法周周练17C - 成绩分析(签到题)

链接:https://ac.nowcoder.com/acm/contest/6607/C来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述给出一个班级所有同学的成绩,请求出采用平均数和中位数作为班级成绩的差异。输入描述:第1行输入整数n(1≤n≤100),代表班级人数。第2行输入班级n个同学的成绩,每个同学的成绩为[0,100]范围内的其中一个整数。成绩按照从小到大的顺序排列。输

2020-07-29 14:41:49 303

原创 Codeforces 1107D - Compression(思维 + 二维前缀和)

题目大意:给出一个n x n 的矩阵A,只有01两种元素组成,确保给的一定是4的倍数,接下来要对该矩阵进行压缩,压缩后的矩阵为B,边长为x,要求A i j 等于比B i / x j / x (i / x 向上取整)。如n = 8,压缩后的x为2,所以原来a 1 1 就等于 B 1 1 B1 2 B 2 1 B 2 2。询问压缩后的矩阵最大边长是多少,先输入一个n,然后每行输入一个n / 4位的十六进制数,需要先将十六进制数转为二进制的01存入矩阵。解题思路:要使得1个元素的值等于x * x 个元素的.

2020-07-28 15:41:15 210

原创 Codeforces 137D - Palindromes(区间DP)

D. Palindromestime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputFriday is Polycarpus’ favourite day of the week. Not because it is followed by the weekend, but because the lessons on Friday are 2

2020-07-27 10:15:47 230

原创 Codeforces 1138B - Circus(构造方程 + 枚举)

题目大意:给出一个偶数n,接下来输入两个长度为n的01串,在第一个字符串中,1表示编号为 i 的人可以表演小丑,而0表示不可以。在第二个字符串中,1表示编号为 i 的人可以表演杂技,0则表示不可以。一共有两次表演,有以下几条要求:每个人只能参与一场表演每次表演的人数必须等于n / 2第一次表演小丑的人数必须和第二次表演杂技的人数相同要求找出表演方案,如果能找到,则输出参加第一次表演的演员编号,如果找不到方案则输出 - 1。解题思路:假设00 为A, 01 为B 11 为C, 10 为D.

2020-07-26 18:18:22 176

原创 <WFU暑假训练一> 解题报告

A - Codeforces 208C - Police Station(SPFA + DP计数)B(待补)C - Codeforces 87B - Vasya and Types(模拟)D - Codeforces 1202D - Print a 1337-string…(构造 + 思维)E(待补)F(待补)G - Codeforces 1038D - Slime(贪心)H(待补)I - Codeforces 1250B - The Feast and the Bus(枚举 + 贪心)

2020-07-26 11:12:05 226

原创 Codeforces 1250B - The Feast and the Bus(枚举 + 贪心)

Employees of JebTrains are on their way to celebrate the 256-th day of the year! There are n employees and k teams in JebTrains. Each employee is a member of some (exactly one) team. All teams are numbered from 1 to k. You are given an array of numbers t1,

2020-07-26 11:08:19 438

原创 Codeforces 1038D - Slime(贪心)

题目大意:给出 n 个史莱姆,每个可以吞噬左边或右边的,然后他的数值变为x- y,询问最终史莱姆的最大值。解题思路:如果这些数有正有负,则可以利用负数 - 正数 ,使最后只留下一个正数,再利用正数 - 负数 = 正数 + abs(num),所以有正有负时,输出和的绝对值即可。如果这些数全正或全负,则最后的值是Σ|a[i]| - min(a[i]) * 2,可以这样想,假设有5个正数 a b c d e 他们的和的绝对值是 sum,我们找出一个最小的数(假设是a)然后吞噬旁边的数,得到非正数(a.

2020-07-26 11:00:26 316

原创 Codeforces 1202D - Print a 1337-string...(构造 + 思维)

题目大意:输入 t 表示有 t 组数据,对于每组数据输入n,你需要用1 3 7 来构造一个序列,使得其中恰好有 n 个 1337 的子序列,输出构造好的序列。解题思路:范围有1e9,想要只通过n个1和n个7和一个33构造是不可能的,需要观察下33的规律,发现n个3,能构造n(n - 1)/ 2 个33的子序列,所以我们可以构造形如 1337333337这样的子序列,那么总1337的个数就等于所有33构造出来的个数 + 前面7的个数,7穿插在中间就可以达到加的效果了。大概45000个3能构造1e9左.

2020-07-26 10:50:00 184

原创 Codeforces 87B - Vasya and Types(模拟)

题目大意:有这样一种语言&K*语言,有两种基本类型,void和errtype,同有两种运算方式:typedef A B 将A定义为B,B中不可以带&*typeof A 输出A对应的void类型这个语言有一个非常强大的指针系统,void * 表示指针,&表示取消引用,即:&void(5个星号) = void(4个星号),星号的优先级始终高于&,即:&void * = void,如果&&void * 则会导致错误的类型errty..

2020-07-26 10:32:38 142

原创 Codeforces 208C - Police Station(SPFA + DP计数)

题目大意:给出n个点和m条道路,接下来有m行,每行输入每条道路的起点和终点,权值均为1,在这座城市有个奇怪的特性:人们总是会走最短的路,你的任务是在1 - n中找出一个点设置为警局,我们规定:与警局相连的道路是安全的,即:5号是警局,那么4 5 和5 6 都是安全的,每个警局对应两条安全的道路(除了1和n)询问所有安全道路中,平均安全道路的条数最多是多少。解题思路:跑一遍spfa计算dis[n]的最短距离和最短路的总条数,然后枚举2 - (n - 1)个点,每个点跑spfa,如果dis【1】 + ..

2020-07-26 10:18:23 200

原创 Codeforces Round #658 (Div. 2) 解题报告(ABC1C2)

Codeforces 1382A - Common Subsequenc(水题)Codeforces 1382B - Sequential Nim(思维)Codeforces 1382C1 - Prefix Flip (Easy Version)(思维)Codeforces 1382C2 - Prefix Flip (Hard Version)(思维)

2020-07-23 10:43:18 99

原创 Codeforces 1382C2 - Prefix Flip (Hard Version)(思维)

C2. Prefix Flip (Hard Version)time limit per test1 secondmemory limit per test256 megabytesinput standard inputoutput standard outputThis is the hard version of the problem. The difference between the versions is the constraint on n and the required n

2020-07-23 10:41:04 262

原创 Codeforces 1382C1 - Prefix Flip (Easy Version)(思维)

C1. Prefix Flip (Easy Version)time limit per test1 secondmemory limit per test256 megabytesinput standard inputoutpu tstandard outputThis is the easy version of the problem. The difference between the versions is the constraint on n and the required n

2020-07-23 10:07:05 274

原创 Codeforces 1382B - Sequential Nim(思维)

B. Sequential Nimtime limit per test1 secondmemory limit per test256 megabytesinput standard inputoutput standard outputThere are n piles of stones, where the i-th pile has ai stones. Two people play a game, where they take alternating turns removing

2020-07-23 10:00:38 344

原创 Codeforces 1382A - Common Subsequenc(水题)

A. Common Subsequencetime limit per test1 secondmemory limit per test256 megabytesinput standard inputoutput standard outputYou are given two arrays of integers a1,…,an and b1,…,bm.Your task is to find a non-empty array c1,…,ck that is a subsequence

2020-07-23 09:48:14 284

原创 HDU 1874 - 畅通工程续(dijkstra + spfa求最短路)

畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 88894 Accepted Submission(s): 34281Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短

2020-07-22 23:04:46 119

原创 牛客算法周周练16D Rinne Loves Dynamic Graph(分层图最短路 + 堆优化dijkstra)

题目大意:先输入节点数和边数,然后对应每条边输入起点位置和终点位置,再输入权值建图,这张图是个动态图,既每走一步,图中所有节点的权值都会发生变化,这个变化是1 / (1 - x)先观察这个函数,多代几次数,发现这是一个迭代函数,变化三次后又会回到原来的 x,这样可以根据题意分三层建图,每层只能通往更高层的位置,而第三层的下一步又会回到第一层,就可以实现动态图了,用一个邻接表存图,存图的时候权值取绝对值(题目要求)之后跑一个堆优化的迪杰斯特拉,讨论每一层的最短路即可得出答案。AC代码:#include .

2020-07-22 16:18:29 178

原创 牛客算法周周练16A - 红包期望(思维)

题目大意:给出3个整数,m n t 表示红包可以被m个人领取,总额是n,T组询问,对于每组询问输入一个k,询问当是第k个领红包时,期望值是多少。解题思路:题目中给出的红包大小在0 - 2 * n / m ,盲猜了一发,开longlong,如果<=m输出n/m,反之则是0居然过了… AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>.

2020-07-22 16:00:42 158

原创 Codeforces Round #656 (Div. 3) 解题报告(ABCDE)

Codeforces 1385A - Three Pairwise Maximums(思维)Codeforce 1385B - Restore the Permutation by Merger(思维)Codeforces 1385C - Make It Good(思维)Codeforces 1385D - a-Good String(分治 + 贪心)Codeforce 1385E - Directing Edges(拓扑排序判环)比赛的时候写出来了3个,D题最后想到递归去做但是时间不够用了,这次

2020-07-18 21:14:54 138

原创 Codeforces 1385E - Directing Edges(拓扑排序判环)

E. Directing Edgestime limit per test3 secondsmemory limit per test256 megabytesinput standard inputoutput standard outputYou are given a graph consisting of n vertices and m edges. It is not guaranteed that the given graph is connected. Some edges ar

2020-07-18 21:07:55 489

原创 Codeforces 1385D - a-Good String(分治 + 贪心)

D. a-Good Stringtime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputYou are given a string s[1…n] consisting of lowercase Latin letters. It is guaranteed that n=2k for some integer k≥0.The string

2020-07-18 18:38:05 468 5

原创 Codeforces 1385C - Make It Good(思维)

C. Make It Goodtime limit per test1 secondmemory limit per test256 megabytesinput standard inputoutput standard outputYou are given an array a consisting of n integers. You have to find the length of the smallest (shortest) prefix of elements you need

2020-07-18 18:05:27 453

原创 Codeforces 1385B - Restore the Permutation by Merger(思维)

B. Restore the Permutation by Mergertime limit per test1 secondmemory limit per test256 megabytesinput standard inputoutput standard outputA permutation of length n is a sequence of integers from 1 to n of length n containing each number exactly once.

2020-07-18 17:54:58 297

原创 Codeforces 1385A - Three Pairwise Maximums(思维)

A. Three Pairwise Maximumstime limit per test 1 secondmemory limit per test 256 megabytesinput standard inputoutput standard outputYou are given three positive (i.e. strictly greater than zero) integers x, y and z.Your task is to find positive intege

2020-07-18 17:51:17 367

原创 UVA 156 - Ananagrams(map+vector)

题目大意:给出一些字符串,遇到#字符结束输入,输出符合条件的字符串,所谓符合条件:该字符串不能通过任何字符串转换大小写或任意顺序重新排列得到,即他是唯一的。解题思路:因为没说具体有几个串,因此用不定长数组vector存字符串,然后对该字符串做一下标准化,先都转换成小写再按字典序排好,然后映射一下该字符串,mp[string] ++ ,全部输入完成后,遍历vector,再对其每一个字符串进行标准化,如果该字符串在mp中仅出现过一次,则插入集合,遍历完后输出集合的元素(因为要按字典序输出,集合自动排序).

2020-07-17 21:02:45 88

原创 UVA 136 - Ugly Numbers(优先队列 + 集合)

题目大意:所谓丑数,就是除了2 3 5 ,都不能被其他素数整除,输出第1500个丑数。解题思路:派生的思想,x是丑数,那么2x 3x 5x都是丑数,每次取最小的数,然后通过这个数派生,然后存入集合,直到取到第1500小的时候输出队首元素即可。AC代码:#include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <stack>#inc.

2020-07-17 20:54:52 142

原创 UVA 540 - Team Queue(STL队列 + 模拟)

有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友身后。如果没有任何一个队友排队,则他会排到长队的队尾。输入每个团队中所有队员的编号,要求支持如下3种指令(前两种指令可以穿插进行)。ENQUEUE:编号为X的人进入长队。DEQUEUE:长队队首出队。STOP:停止模拟。对于每个DEQUEUE指令,输出出队的人的编号。输入输入文件中有一组或多组测试数据。每组测试数据开始有t个团队。下面t行,每行的第一个数字代表这个团队人数,后面是这几个人的编号。

2020-07-17 10:01:13 314

原创 HDU 3038 - How Many Answers Are Wrong(带权并查集)

给出一个区间的长度 N,及 M 个子区间和, 形如:x y z, 表示子区间 [x, y] 的和为 z如果一个“子区间和”与前面的“子区间和”冲突,即为错误(而且这个“子区间和”将在接下来的判断中被忽略)。求总错误个数。Input有多组数据。每组数据第一行两个整数N M (1 <= N <= 200000, 1 <= M <= 40000),接下来每行有 M 对关系 x y z;注:可以认为 z 为32位整型。Output错误个数。Sample Input10

2020-07-17 09:50:38 133

原创 POJ 2236 - Wireless Network(基础并查集)

南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队) 已经为膝上型电脑搭建了一个无线网络,但受到了一次不可预知的余震攻击,因此网络中的所有电脑都被破坏了。电脑被逐台修复,网络逐步恢复了工作。由于受到硬件的约束,每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点,也就是说,如果电脑 A 和电脑 B 可以直接通信,或存在一台电脑 C 既可与 A 也可与 B 通信,那么电脑 A 和电脑 B 之间就能够通信。在处理网络修复的过

2020-07-17 09:32:30 194

原创 DP - 背包九讲之分组背包

分组背包问题有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔开,分

2020-07-15 15:02:02 227

原创 DP - 背包九讲之二维费用的背包问题

二维费用的背包问题有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。接下来有 N 行,每行三个整数 vi,mi,wi,用空格隔开,分别表示第 i 件物品的体积、重量和价值。输出格式输出一个整数,表示

2020-07-15 14:54:45 196

原创 牛客算法周周练15 解题报告(ABD)

牛客算法周周练15A - 数列下标(单调栈)牛客算法周周练15B - 可持久化动态图上树状数组维护01背包(贪心)牛客算法周周练15D - 树上求和(DFS序 + 线段树维护平方和)比赛AC了两题,然后A题跑暴力侥幸过了,赛后补了树上求和和单调栈优化A题。还需要细心,做B 题的时候因为细节白白WA了两次。PS:调试线段树真的恶心...

2020-07-15 14:48:38 181

原创 牛客算法周周练15D - 树上求和(DFS序 + 线段树维护平方和)

题目大意:输入n q 表示树有 n 个节点和 q 次操作,然后输入n个数,表示 n 个节点的权值,之后输入 n - 1 条边,再输入 q 次操作,1 x y表示给 x 所在的子树权值 + y,2 x 则输出 x所在子树的所有节点的平方和。解题思路:树上问题的模板题,遇到树,而且是在子树上进行操作,先跑一遍dfs序将这棵树线性化,因为dfs序跑完以后,子数部分一定是连续的,而且可以求出该节点所在子树的起始时间戳和终止时间戳,然后子树上的问题就转化为对区间进行操作的问题了,维护一个平方和,愉快的使用线段.

2020-07-15 14:45:58 287

原创 牛客算法周周练15B - 可持久化动态图上树状数组维护01背包(贪心)

题目大意:给出 n 个数,你的任务是清除这些数,可以从任意位置删除一个数,删除的代价是 i * a[i] 这个数删除后,后面的数统一前移(下标-1),输出删除所有数的最小代价。解题思路:题目大水题,最开始以为全是正数,以为只要一直删除第一个元素就可以得到最小代价,然后wa了一次,没有考虑负数,理解题意以后很明显的一道贪心题,想要得到最小代价,遇到负数时就要使下标尽可能大,从后往前考虑,可以保证每一个负数的代价最小化,也就是原来的下标,考虑完负数后考虑正数,正数一直删除第一个元素就可以了,使下标始终是.

2020-07-15 14:22:55 183

原创 牛客算法周周练15A - 数列下标(单调栈)

题目大意:给出 n 个数,下标从 1 开始,依次输出 ai 右边第一个比 ai 大的数的下标,如果没有找到则输出 0 。解题思路:思路一:枚举枚举从 i 到 n 所有的数,找到则输出第一个,没找到则输出 0 ,复杂度是平方阶的,范围1e4 复杂度大概1e8,很容易被卡。AC代码:#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using na.

2020-07-15 14:13:44 352

原创 DP - 背包九讲之混合背包

混合背包问题有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。si=−1

2020-07-14 18:29:28 249

原创 DP - 背包九讲之多重背包

多重背包问题有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤1000<vi,wi,si≤100输入样

2020-07-14 18:15:06 478

原创 DP - 背包九讲之完全背包

完全背包问题有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4

2020-07-14 17:19:15 256 2

空空如也

空空如也

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

TA关注的人

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