- 博客(39)
- 收藏
- 关注
原创 G - Supermarket
传送门:Supermarket题意:有n件商品,每件商品的利润为p_i,销售日期的截止时间为d_i(即只能在d_i时间前销售该物品)。一天只能销售一件物品。问这n件商品的最大利润为多少思路:具体见代码和注释。代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 10010;in
2022-05-30 16:14:35
181
原创 F - True Liars (种类并查集+DP)
传送门: True Liars题意:给出n对关系,p1个好人,p2个坏人。要求根据n对关系中找出好人有哪些,若方案唯一,则逐个输出好人,最后输出end;若方案不唯一/找不到,那么输出no思路:第一次碰到这种类型的题目,想了很久没什么思路,参考了其他人的博客才弄懂了。以下为所参考博客的思路:通过简单的分析可以得出,对于每对关系(x,y,yes/no),若关系为yes,则x和y属于同一类人;若关系为no,则x和y属于相反类人。根据初步的n对关系,我们只可以推出哪些属于同一类人,哪些属于相反类人,
2022-05-30 10:24:51
189
原创 E - 食物链
传送门:食物链题意:题意简单,直接看题目即可。思路:这是个经典的带权并查集题目了。根据惯例,我们需要两个数组,一个是父亲节点数组p,另一个为记录x到p[x]的权值的d[x]数组,在这里规定x吃p[x]。这道题的难点在于吃与被吃的数组d之间的关系。1.假如x与y是同类且用共同的祖宗节点,那么就判定d[x]-d[y])%3是否等于0,等于0就代表与所说的话一致,反之不一致,ans++;2.假如x与y是同类且没用共同的祖宗节点,就让px的父亲节点为py,算出d[px],d[px]=d[y]-d[x
2022-05-27 09:19:56
165
原创 D - How Many Answers Are Wrong
传送门:How Many Answers Are WrongTT and FF are … friends. Uh… very very good friends -________-bFF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To begin with, TT should write down a sequence of integ
2022-05-25 09:56:17
283
原创 B - The Suspects
传送门: The Suspects题意:一开始只有0号学生被视为可能的患者,与0号患者直接或间接接触的人都视为可能患者,求出所有可能的患者。思路:思路很简单,将学生之间接触的都放在一个集合里,然后求出0号学生的根节点,循环判断有多少个学生的根节点与之相同即可。代码:#include<iostream>#include<stdio.h>using namespace std;int n,m,p[30005];int find(int x){ if(p[x]!=x
2022-05-24 08:59:13
97
原创 A - Wireless Network
传送门:Wireless Network题意:题目说的是给出一些坏电脑的坐标,再给出任意个操作,操作为修复一台电脑,或者判断两台电脑是否可以联网。思路:可以当做并查集模板题来做,很简单。我们需要三个数组,一个来记录电脑坐标,一个来记录电脑是否修好了,最后一个来记录该电脑的的祖宗节点电脑。第一种操作"O p" (1 <= p <= N),其实就是记录哪台电脑修好以及合并集合的过程;第二种操作 “S p q” (1 <= p, q <= N),就是询问两个电脑所在的集合是否相
2022-05-23 15:46:08
103
原创 POJ 2488 A Knight‘s Journey(dfs)
传送门:A Knight’s Journey题意:给你一个p*q的棋盘(大小不超过8✖8,1<=p✖q<=26),要求棋盘的所有位置都要经过,且只经过一次,问字典序最小的一条路径,如果没有就输出impossible。思路:这道题有一点我比较困惑,就是起始位置的选择,按照我的理解,起始位置也要枚举,但看其他代码没有枚举,起始位置就用(1,A)也能过,就很迷。。。于是我也从(1,A)开始枚举。这道题的思路就是我们把马能走的用dx,dy记录下来,并且是按照字典序的顺序记录下来,其他的就按照常
2022-05-18 14:38:09
147
原创 POJ 1159 Palindrome(LCS变形)
传送门:Palindrome题意:给你个字符串,问最少加入多少字符可以让这个字符串变成回文字符串。思路:s为给定的字符串,e为s的逆序字符串。最少需要补充的字母数 = 原序列s的长度 — s和e的最长公共子串长度。原因仔细想想应该可以想出来。这道题就变成求s和e的最长公共子串长度。也就是LCS问题。在这里要注意定义二维数组空间会超限的,由于在LCS问题中都是相邻两个数进行比较,所以可以用滚动数组来优化空间。代码:#include<iostream>#include<
2022-05-16 16:41:42
344
原创 POJ 1080 Human Gene Functions(LCS变形)
传送门:Human Gene Functions题意:给你两个基因序列,你可以添加-,使得这两个序列相等且匹配值最大。匹配值计算见题目图片。思路:类似于LCS,在这里我们只考虑三种情况:1.a[i]与’-‘匹配时,dp[i][j]=dp[i-1][j]+val(a[i],’-‘)2.a[i]与b[j]匹配时,dp[i][j]=dp[i-1][j-1]+val(a[i],b[i])3.’-‘与b[j]匹配时,dp[i][j-1]+val(b[j],’-')在这里要注意怎么初始化,具体见代码。
2022-05-16 09:45:01
115
原创 POJ 1260 Pearls
传送门:Pearls题意:有c种不同品质的珍珠,分别给出各种珍珠的需求数目num和单价price,对于采购人员来说,要购买足够多数量的各种珍珠,但每种珍珠可以购买或者是要求的种类,或者是品质更好的珍珠。同时,为了避免有人只买一个珍珠,所以无论购买完成哪一种珍珠,都要交付10*price的额外成交价。 输入时以珍珠的递增价格输入。 要求计算购买足够的珍珠(可以以要求的品质购买,也可以选一些品质更高的珍珠)所需要的最小金钱。思路:这道题的意思有点难理解,写的时候我都不知道为啥可以以同一个价格来买
2022-05-15 16:17:23
170
原创 POJ 1836 Alignment
传送门:Alignment题意:使原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。思路:就是使新队列的高度呈三角形分布,不过允许最高的两个人高度相等。假设第i位最高第i位左边是严格递增的序列,右边严格递减。所以我们要求两个dp数组,一个记录从左到右的最长上升子序列,另一个记录从右到左的最长上升子序列。在这里要注意并不是单纯的dp1[i]+dp2[i],而是dp1[i]+dp2[j],还有就是当i==j时,dp1[i]+dp2[j]还要再减一,具体原因自己再想想就知道了
2022-05-14 16:27:45
128
原创 POJ3267-The Cow Lexicon
传送门:The Cow Lexicon题意:给出一个主串,w个子串,问最少在主串删除多少字母,可以使其匹配到子串的单词序列。思路:定义dp[i]表示从第i个字母到最后一个字母所删除的字母数。然后从后往前循环遍历模拟判断即可。具体见代码和注释。在这里要注意一下我写的dp[i]的意义,我的是左闭右闭的区间!还有就是由于dp数组和主串子串数组下标起始位不同,所以写起来有点难理解。代码:#include<iostream>#include<stdio.h>#include&
2022-05-14 10:28:11
136
原创 poj1276 Cash Machine(多重背包变形)
传送门: Cash Machine题意:给你争取要获得的钱数, 货币种类和每种货币的数量, 求在不超过给的钱数的情况下,获得尽量多的钱。思路:一开始我是用常规动态规划的思路来写这道题的,定义dp[i][j]:用第i种货币所能支付的不超过j的钱数的最大钱数。但在实际写的过程中因为担心空间超限,所以我把它降为一维了。状态转移方程为:dp[j]=max(dp[j],dp[j-k✖dk[i]]+k✖dk[i]);可这种写法是会超时的,时间复杂度为O(nk✖N✖cash),即10的9次方。我们要想办法优化它
2022-05-13 16:43:56
683
1
原创 POJ1837-Balance(01背包变形)
传送门: Blance题目大意:给你一根杠杆,轴在中心标记位0,中心左边,从左到右标记-15,-14,…,-1,中心右端,1,2,3,…,15,表示到中心的距离。现在给你c个挂钩,g个砝码。告诉你挂钩位置和每个砝码的重量,要求用完所有砝码。问:使得杠杆平衡的方案数是多少?思路:01背包问题的变形题。在01背包中dp[i][j]表示放入第i个物品背包体积为j的最大价值,而在这里dp[i][j]表示放入第i个砝码(前面i-1个砝码都已放入)平衡度为j的最大方案数。平衡度指的是balance=左臂长(负
2022-05-13 10:40:30
512
原创 2022年第十三届蓝桥杯C/C++ B组第一场省赛题解
2022年第十三届C/C++ B组第一场蓝桥杯省赛题解A:九进制转十进制B:顺子日期C:刷题统计D:修剪灌木E:X 进制减法F:统计子矩阵G:积木画H:扫雷I:李白打酒加强版J:砍竹子A:九进制转十进制答案:1478解析:B:顺子日期答案:14解析:C:刷题统计code:#include<bits/stdc++.h>using namespace std;typedef long long ll;ll a,b,n,ans=0;int main(){ cin&g
2022-05-07 07:50:42
6347
3
原创 kuangbin专题十二 基础DP
kuangbin专题十二 基础DPA - HDU1024 Max Sum Plus PlusA - HDU1024 Max Sum Plus PlusB - HDU1029 Ignatius and the Princess IVC - HDU1069 Monkey and BananaD - HDU1074 Doing HomeworkE - Hdu1087 Super Jumping! Jumping! Jumping!F - Hdu1114 Piggy-BankG - HDU1176 免费馅饼H -
2022-03-08 16:37:58
443
原创 kuangbin 专题一 简单搜索
kuangbin 专题一 简单搜索1.POJ1321棋盘问题[DFS]2.POJ2251Dungeon Master[三维空间BFS]3.POJ3278 Catch That Cow[BFS]4.POJ3279 Fliptile[状态压缩+DFS]5.POJ1426 Find The Multiple[BFS]6.POJ3126 Prime Path[BFS]7.POJ3087 Shuffle'm Up[简单模拟]8.POJ3414 Pots[BFS]9.FZU2150 Fire Game[BFS+暴力]1
2022-02-23 10:58:39
251
原创 2021牛客练习赛90
2021牛客练习赛90B.寒冬信使C.盾与战锤B.寒冬信使题目链接:https://ac.nowcoder.com/acm/contest/11180/Bcode:#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; cin>>t; for(int i=1;i<=t;i++) { string s; cin>
2021-10-30 17:22:07
193
原创 树状数组(一维+二维)模板
树状数组模板一维树状数组单点更新,区间查询区间修改,单点查询区间修改,区间查询二维树状数组单点修改+区间查询区间修改+单点查询区间修改+区间查询一维树状数组单点更新,区间查询void update(int x,int y,int n){ for(int i=x;i<=n;i+=lowbit(i)) //x为更新的位置,y为更新后的数,n为数组最大值 c[i] += y;}int getsum(int x){ int ans = 0; for(in
2021-10-27 20:28:47
77
原创 2021牛客小白月赛39
2021牛客小白月赛39(A+B+C+E+G+H)这里写目录标题A.憧憬B.欢欣C.奋发D.绝望E.迷惘G.冷静H.终别A.憧憬题目链接:https://ac.nowcoder.com/acm/contest/11216/A题目描述:给定n个向量的起点和终点x1,y1,x2,y2,再给出一个目标向量,求能否由n个向量中的两个相加构造出一个与目标向量平行的向量(注意,平行包括方向相同或相反)保证x1!=x2,y1!=y2,保证两个向量相加不为零向量。输入描述:第一行给定一个整数n接下来n行每
2021-10-23 22:37:21
2691
转载 由数据范围反推算法复杂度以及算法内容
一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 10^7∼100000000为最佳。下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:1.n≤30, 指数级别, dfs+剪枝,状态压缩dp2.n≤100 => O(n3),floyd,dp,高斯消元3.n≤1000 => O(n2),O(n2logn),dp,二分,朴素版Dijkstra、朴素版Prim、Bellman-Ford4.n≤10000 => O(n*√n),块状链表、
2021-10-23 14:16:08
119
原创 完全背包问题(模板题)
有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 51 22
2021-10-21 17:06:30
191
原创 01背包问题(模板题)
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 51 22
2021-10-21 16:02:25
294
原创 Daiwa Securities Co. Ltd. Programming Contest 2021(AtCoder Regular Contest 128)(A+B)
这里写目录标题A - Gold and SilverB - Balls of Three Colors List itemA - Gold and Silver题目链接:https://atcoder.jp/contests/arc128/tasks/arc128_aInputInput is given from Standard Input in the following format:NA1 A2 ... ANOutputPrint the answer in the fo
2021-10-18 20:31:57
6563
原创 2021牛客挑战赛53
2021牛客挑战赛531.A.智乃哥哥的小谜题A2.B.简单的序列1.A.智乃哥哥的小谜题A链接:https://ac.nowcoder.com/acm/contest/11193/A来源:牛客网题目描述你当前站在数轴的原点 0 处,你要移动到数轴上的一个正整数点 x 处。假如你当前的位置是 y ,正在进行第 k 次操作,你可以做出以下两种移动:移动到位置 { y + k}y+k移动到位置 { y - 1}y−1你可以移动到数轴的负半轴上,试求移动到点 x 的最小步数。输入描述:第一
2021-10-16 19:40:44
654
转载 算法竞赛中计算机1000ms一般能运行的范围
在竞赛中,一般算机一秒能运行5 x 10^8次汁算,一般 O(n)的算法数据范围n < 10^8。O(n logn)的算法数据范围n <= 10^6。O(nsqrt(n) )的算法数据范围n < 10^5。O(n^2)的算法数据范围n<5000。O(n^3)的算法数据范围n <300。O(2^n)的算法数据范围n < 25。O(n!)的算法数据范围n < 11。转载链接:https://blog.csdn.net/qq_42802219/articl
2021-10-05 11:55:25
1221
原创 DP专题集
DP专题集1.题目描述2.AC代码3.个人看法4.原题链接1.题目描述题目描述Bobo has a sequence of integers s1, s2, …, sn where 1 ≤ si ≤ k.Find out the number of distinct sequences modulo (109+7) after removing exactly m elements.输入描述:The input consists of several test cases and is term
2021-10-04 17:49:12
71
原创 莫队算法的两种情况
莫队算法的两种情况1.求相同的数有多少2.求不同的数有多少3.个人看法4.参考博客1.求相同的数有多少Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概率
2021-10-03 20:13:49
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人