![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 94
WA-自动机
个人站点:https://docs.ltpp.vip
展开
-
1150 Machine Schedule
题目详情:Machine ScheduleTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12936Accepted Submission(s): 6437Problem DescriptionAs we all know, machine scheduling is a very classical problem...原创 2021-09-09 21:00:46 · 96 阅读 · 1 评论 -
1242 Rescue
题目详情:RescueTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 49369Accepted Submission(s): 16614Problem DescriptionAngel was caught by the MOLIGPY! He was put in prison by Moligpy. The p...原创 2021-09-05 10:54:37 · 146 阅读 · 0 评论 -
1372 Knight Moves
题目详情:Knight MovesTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18235Accepted Submission(s): 10461Problem DescriptionA friend of you is doing research on the Traveling Knight Problem...原创 2021-09-04 22:13:43 · 77 阅读 · 1 评论 -
1495 非常可乐
#include<iostream>#include<queue>#include<vector>using namespace std;class bottle{ public: int A,B,C; int times;};void BFS(int a,int b,int c){ if(a%2!=0){ cout<<"NO"<<endl; retur..原创 2021-09-04 20:25:41 · 146 阅读 · 0 评论 -
1548 A strange lift
题目详情:A strange liftTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47831Accepted Submission(s): 16738Problem DescriptionThere is a strange lift.The lift can stop can at every floor as y...原创 2021-09-02 19:37:20 · 81 阅读 · 0 评论 -
1874 畅通工程续
题目详情:畅通工程续Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 96226Accepted Submission(s): 37051Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比...原创 2021-09-01 22:12:24 · 103 阅读 · 0 评论 -
4508 湫湫系列故事——减肥记I
题目详情:湫湫系列故事——减肥记ITime Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 10111Accepted Submission(s): 4901Problem Description 对于吃货来说,过年最幸福的事就是吃了,没有之一! 但是对于女生来说,卡路里(热量)是天敌啊! 资深美女湫湫深谙“胖来如山倒,...原创 2021-08-30 20:58:06 · 152 阅读 · 0 评论 -
1248 寒冰王座
题目详情:题目大意:买道具,只有三种道具可以选择,数量不限,但商家不会找钱给你,你要用手上的钱去买,并且尽可能使商家赚得少。解题思路:转化成完全背包问题,把三种道具的价格存到数组中,体积即为价格,使背包中的剩余体积尽可能小。AC代码:#include<iostream>#include<vector>#include<algorithm>using namespace std;vector<int&g...原创 2021-08-30 20:06:57 · 141 阅读 · 0 评论 -
2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目详情:题目大意:有一定现金,去买米,米是按袋装的,米的种类很多,同一种米可以买多次,也可以不买,问把现金全拿来买米最多可以买多少重量的米,现金不一定要全花完。解题思路:同样用一维dp数组记录重量,这里的现金就是背包,如果查过预算金额就是超过背包容量,那么不进行记录,否则取之前记录的和现在的重量的最大值。AC代码:#include<iostream>#include<vector>#include<algori...原创 2021-08-30 10:45:47 · 139 阅读 · 1 评论 -
2602 Bone Collector
题目详情:题目大意:每个骨头都有价值和体积,背包容量有限,并且每一个骨头都只有一个,问在背包容量范围内如何装骨头使背包里骨头的价值最大。解题思路:用DP二维数组记录当前价值最大的价值,直到遍历到最后一个元素,即为最大价值。AC代码:#include<iostream>#include<vector>#include<algorithm>using namespace std;class bone{ p..原创 2021-08-30 09:44:56 · 114 阅读 · 0 评论 -
1058 Humble Numbers
题目详情:题目大意:一个数它的因子只有2,3,5,7其中的一个或多个的任意组合的数叫丑数,现在请你写一个程序找出第N个丑数!解题思路:设h2=1,h3=1,h5=1,h7=1,状态转移方程:num[i]=min(min(2*num[h2],3*num[h3]),min(5*num[h5],7*num[h7])),同时用num[i]和之前的这四个数作比较,相等则使对应的h加一。AC代码:#include<iostream>#include...原创 2021-08-30 08:41:20 · 135 阅读 · 0 评论 -
1421 搬寝室
题目详情:题目大意:一个人有n件物品,打算挑2*k件物品搬走,每次左右手上必须分别有1件物品,每次消耗的体力为左右手上物品重量差的平方,问:搬完2*k件物品,最少消耗的体力。题目分析:先把搬1次消耗体力保存下来,再把搬2次消耗体力保存下来,直到保存到搬k次消耗的体力。需要注意的是,dp数组全部初始化大数,并且dp[0][0]-dp[0][n]初始化为0。AC代码:#include<iostream>#include<vector>...原创 2021-08-28 10:54:47 · 364 阅读 · 1 评论 -
1257 最少拦截系统
题目详情:题目大意:每一个拦截系统发射的炮弹高度不能高于之前发射的高度,问要拦截所有导弹,最少需要几个拦截系统。解题思路:该问题可以转换成求最长非递减子序列问题,例如:389 207 155 300 299 170 158 65这组数据1.定义数组记录最长非递减子序列长度,默认值均为12.数据 389 207 155 300 299 170 158 65 数组 1 1 1 2...原创 2021-08-27 21:05:34 · 105 阅读 · 0 评论 -
2084 数塔
题目详情:题目大意:从顶部到底部一条连续且每层只经过一次的路径,求出路径上所有数值的和最大是多少。解题思路:DP,从底部往上求解。AC代码:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ int n; cin>>n; while(n--){ ..原创 2021-08-27 19:37:45 · 73 阅读 · 0 评论 -
2047 阿牛的EOF牛肉串
题目详情:题目大意:给出e,o,f三个字符,除了oo不能出现,其他都可以出现,求给定长度的字符串有多少种情况。解题思路:DP,状态转移方程:f(n)=f(n-1)*2+f(n-2)*2。AC代码:#include<bits/stdc++.h>#define N 10005using namespace std;int main(){ int n; while(cin>>n){ long lon..原创 2021-08-27 18:50:26 · 68 阅读 · 0 评论 -
2501 Tiling_easy version
题目详情:题目大意:求多少种放骨牌的方式。解题思路:和之前铺地砖一样,状态转移方程:f(n)=f(n-1)+2*f(n-2)。AC代码:#include<iostream>using namespace std;int main(){ int n; cin>>n; while(n--){ long long int dp[31]; dp[0]=0; dp...原创 2021-08-27 18:25:27 · 90 阅读 · 0 评论 -
2190 悼念512汶川大地震遇难同胞——重建希望小学
题目详情:题目大意:有两种规格的地板,求有多少种铺地板的方式。解题思路:和之前铺地砖核心思想一样,DP,状态转移方程:f(n)=f(n-1)+2*f(n-2)。AC代码:#include<iostream>using namespace std;int main(){ int n; cin>>n; while(n--){ long long int dp[31]; ...原创 2021-08-27 18:14:47 · 1119 阅读 · 0 评论 -
2050 折线分割平面
题目详情:题目大意:求n条折线最多可以把平面分割成多少份。解题思路:新增第n条直线,与前面n-1条每条直线都新增4个交点,即新增4*(n-1)个交点,那么新增的段数为交点数加一,新增段数即为新增平面数,状态转移方程:f(n)=f(n-1)+4*(n-1)+1.#include<bits/stdc++.h>#define N 10005using namespace std;int main(){ long long a[N]; ...原创 2021-08-27 17:18:58 · 131 阅读 · 0 评论 -
2046 骨牌铺方格
题目详情:题目大意:把方格铺满,有多少种方法。题目分析:DP,固定最后的骨牌,两种固定方法,可得状态转移方程,f(n)=f(n-1)+f(n-2)。AC代码:#include<iostream>using namespace std;int main(){ int n; while(cin>>n){ long long int a[51]; a[0]=0; a[1]..原创 2021-08-27 16:07:15 · 97 阅读 · 0 评论 -
2044 一只小蜜蜂...
题目详情:题目大意:蜜蜂只能往右走,不能反向爬行,计算蜜蜂从蜂房a爬到蜂房b的可能路线数。题目分析:DP,观察从1-3,可以走1步也可以走两步,多往后继续观察,可以发现其实和上楼梯本质一样,只是本题把楼梯一条线换成了(可以看成)两条线,因此可以写出状态转移方程:f(n)=f(n-1)+f(n-2)。AC代码:#include<iostream>using namespace std;int main(){ int n; ci..原创 2021-08-27 15:51:02 · 176 阅读 · 0 评论 -
2041 超级楼梯
题目详情:题目大意:问到m阶楼梯,有多少种走法,每次可以走一阶或两阶。解题思路:DP,状态转移方程:f(n)=f(n-1)+f(n-2)。(本题n从3开始)AC代码:#include<iostream>using namespace std;int main(){ int n; cin>>n; while(n--){ int a[43]; a[0]=0; ...原创 2021-08-27 15:15:02 · 63 阅读 · 0 评论 -
1272 小希的迷宫
题目详情:题目大意:迷宫内不能构成回路。解题思路:并查集,先判断是否构成回路,不构成回路再判断是否只有一个迷宫,不会出现一次输入,存在多个独立的迷宫。AC代码:#include<iostream>#define N 100006using namespace std;int num[N];int ans[N];int circle=1;class node{ public: int first_node...原创 2021-08-27 11:54:28 · 74 阅读 · 0 评论 -
1879 继续畅通工程
题目详情:题目大意:有n个村庄,相互分隔,现在准备修路,使所有村庄相通(直接或间接相连),有的相通的村庄有路就不需要修,有的村庄没有路,则需要修路,求要使所有村庄相通,所修的路的最少花费。解题思路:在并查集的基础上融合了贪心,想要修的路花费最短,先把有路的村庄连接起来,则再把村庄间的修路的花费按照递增排序,再遍历判断两个村庄是否相连,最后输出最少花费。AC代码:#include<iostream>#include<algorithm&...原创 2021-08-26 16:27:56 · 96 阅读 · 0 评论 -
1863 畅通工程
题目详情:题目大意:有n个村庄,相互分隔,现在准备修路,使所有村庄相通(直接或间接相连),求所修的路的最少花费。信息不足则输出“?”,指的是村庄不能全部相通。解题思路:在并查集的基础上融合了贪心,想要修的路花费最短,则先把村庄间的修路的花费按照递增排序,再遍历判断两个村庄是否相连,最后再遍历一次判断村庄是否全部相通,不相通输出“?”,相通则输出最少花费。AC代码:#include<iostream>#include<algorithm...原创 2021-08-26 15:52:46 · 115 阅读 · 0 评论 -
1233 还是畅通工程
题目详情:题目大意:有n个村庄,相互分隔,现在准备修路,使所有村庄相通(直接或间接相连),求所修的路的最短长度。解题思路:在并查集的基础上融合了贪心,想要修的路长度最短,则先把村庄间的距离按照递增排序,再遍历判断两个村庄是否相连,最后输出结果。AC代码:#include<iostream>#include<algorithm>using namespace std;int num[101];class village{ ...原创 2021-08-26 15:02:35 · 95 阅读 · 0 评论 -
1232 畅通工程
题目详情:题目大意:给出城市数目,道路数目,哪些城市两两相同,城市之间无论直接相连还是间接相连都算相通,问有多少个城市没有相连,需要再建造多少条路才能使所有城市相通。题目分析:典型的并查集,求出有多少个城市没有相通,可以先把相通的城市通过合并的方式合并成集合,然后遍历查找多少个集合,即得多少城市没有相通,所新修的道路即为没有相通的城市的个数减1。AC代码:#include<iostream>using namespace std;int ...原创 2021-08-26 13:55:42 · 97 阅读 · 0 评论 -
2454 Degree Sequence of Graph G
题目详情:题目大意:给定度数,判断是否可以构成图解题思路:Havel定理:给定一个非负整数序列{dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化可图化的判定:d1+d2+……dn=0(mod 2)。关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环。可简单图化的判定(Havel定理):把序列排成不增序,即d1≥d2≥……≥dn,则d可简单图化当且仅当d’={d2-1,d...原创 2021-08-26 11:53:37 · 129 阅读 · 0 评论 -
2037 今年暑假不AC
题目详情:题目大意:有多个时间段,每个时间段都有节目,现要求尽可能看多的节目,且看节目的时间段不能有重叠。题目分析:要尽可能的多看节目,并且时间段不允许重叠,可以先根据结束时间进行排序,再记录目前符合要求的最后的节目的结束的时间,根据循环判断,后面的节目的开始时间是否与这个结束时间有冲突(相等不算冲突),再决定是否需要更新这个结束的时间。AC代码:#include<iostream>#include<algorithm>usi...原创 2021-08-25 20:13:20 · 107 阅读 · 0 评论 -
1050 Moving Tables
题目详情:题目大意:房间搬桌子,走廊的宽度刚好只能允许一张桌子通过,即从旧房间到新房间的这段区间,不能允许其他搬家的人搬其他桌子经过.解题思路:通过数组来统计这段区间的元素出现次数,再降序排序,最后输出第一位元素。AC代码:#include<bits/stdc++.h>using namespace std;class room{ public: int old_room; int new_room; int o..原创 2021-08-25 19:20:33 · 175 阅读 · 1 评论 -
1052 Tian Ji -- The Horse Racing
题目详情:题目大意:田忌和国王赛马看谁的马快,匹数均为n,田忌每赢国王一局,+200元,输一局-200元,平局+0元,问如何安排比赛马的出场比赛顺序可以使田忌尽可能多赢钱。解题思路:先把田忌的马和国王的马分别降序排序,如果田忌的快马比国王的快马快,则胜局+1,否则,拿田忌的慢马和国王的慢马比较,慢马能赢就赢,如果田忌的慢马输了再拿田忌的慢马和国王的快马进行比较,这里贪心比较明显,用自己最慢的马去浪费对方最快的马,反正走到这步肯定没有马可以跑赢对面的快马,干脆拿...原创 2021-08-25 16:47:53 · 562 阅读 · 0 评论 -
1009 FatMouse‘ Trade
题目详情:题目大意:老鼠有一定猫粮去贿赂猫,猫得到猫粮会给老鼠一些吃的,问老鼠从猫那里怎么获得尽可能多的吃的。解题思路:贪心,要想获得最多的回报,性价比是最直接的,计算出每次的性价比,递减排序,优先从靠前的地方进行交易,根据所剩猫粮判断什么时候结束循环。AC代码:#include<bits/stdc++.h>using namespace std;class trade{ public: double in;/...原创 2021-08-25 11:48:37 · 128 阅读 · 1 评论 -
2199 Can you solve this equation
题目:方法:二分法解方程AC代码:题目要求保留小数点后4位,为了使结果更准确,计算时我计算到小数点后7位,最后输出小数点后4位#include<iostream>#include<vector>#include<math.h>using namespace std;double math(double x){ return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6;}int main(){.原创 2021-08-24 10:35:44 · 72 阅读 · 0 评论 -
2035 人见人爱A^B
为防止溢出,每进行一次乘法就进行一次取模运算,每进行一次取模运算取后三位,因为题目没有要求不足补0,所以可以直接用结果取模,结果循环结束时直接输出就是最终答案#include<iostream>using namespace std;int main(){ int a,b; int result=1; while(cin>>a>>b){ if(a==0&&b==0) return 0; ...原创 2021-08-24 10:29:28 · 78 阅读 · 0 评论 -
1108 最小公倍数
1、最小公倍数=两数的乘积/最大公约(因)数。2、分解质因数法:先列出相关数的质因数,最小公倍数等于所有的质因数的乘积。3、公式法:由于两个数的乘积,等于这两个数的最大公约数与最小公倍数的积,所以求最小公倍数需先求出最大公约数,用公式求出最小公倍数。#include<iostream>using namespace std;int gcd(int a,int b){//a min,b max if(b!=0) return gcd(b,a%b); return原创 2021-08-24 10:20:51 · 110 阅读 · 0 评论