- 博客(34)
- 收藏
- 关注
原创 Educational Codeforces Round 95 (Rated for Div. 2)-C. Mortal Kombat Tower(贪心做法)
1、题目链接:C. Mortal Kombat Tower2、题目大意:你和你的伙伴在一个塔里面进行闯关,每层塔都有一个boss分为弱的和强的俩种(0表示弱,1表示强),有如下规则:每个人必须杀死1只或者2只boss,但是你的朋友比较弱,遇到强的boss必须使用道具才能杀死boss,而你则不需要。求使用最少道具的数量。3、解题思路:理解题目意思后,很明显是个dp,但是对数据进行模拟观察后发现可以贪心,做法是(尽可能让你打强的boss):由于第一个是你朋友开始所以第一个要是1则必须消耗,后面就只要判断连续
2020-09-15 16:25:09
291
2
原创 Codeforces Round #661 (Div. 3)-E1. Weights Division (easy version)(优先队列+dfs)
1、题目链接:E1. Weights Division (easy version)2、题目大意:给你一棵树n个点(根为1),n-1条边,有一个操作是将边的权值除以2(向下取整),要求通过任意次操作使所有叶子节点到根节点的距离和小于等于S,求最小的操作次数。3、解题思路:很明显肯定先处理原有的距离最大的边,因为它除2后减少的更多,但是注意这是一棵树,有的边会被多次经过,那么这个时候除这个多次被经过的边可能性价比更高。那么我这时候就只需要比较**(一条边被经过次数 × 这条边的权值) − (一条边被经历的
2020-08-06 11:11:05
154
原创 Codeforces Round #617 (Div. 3)-D. Fight with Monsters(贪心)
题目链接:D. Fight with Monsters题目大意: 你和你的对手在打怪兽,你的攻击力是a,对手的攻击力是b,有n个怪兽,血量分别是a1,a2…an。一个回合代表你先攻击然后对手攻击,如果是你给怪兽最后一击(怪兽血量低于0),则你加一分,否则都不加分,你有k次强制对方不出手的机会。解题思路: 分2种情况。1、对于ai%(a+b)=0的怪兽,最后一击肯定是对手给的,所以在最后你攻击一...
2020-02-05 13:46:36
144
原创 Codeforces Round #617 (Div. 3)-C. Yet Another Walking Robot(STL)
题目链接:C. Yet Another Walking Robot题目大意: 有个机器人起始在(0,0),给出一个字符串S(行动序列),其中包含四个字母,'U’表示向上;'D’表示向下;'L’表示向左;'R’表示向右。要求在S中找个子串,使在执行子串操作后,机器人的位置不变,要求所求子串的长度最小,并且输出左右边界下标。解题思路: 根据题意,遍历字符串S进行移动,我们只需要记录每个坐标所对应的...
2020-02-05 12:29:56
143
原创 员工管理系统(c++)
问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。实现要求:(1) 排序:按不同关键字,对所有员工的信息进行排序。(2) 查询:按特定条件查找员工。(3) 更新:按编号对某个员工的某项信息进行修改。(4) 插入:加入新员工的信息。(5) 删除:按编号删除已离职的员工的信息。自创员工表:#i...
2020-01-08 19:21:52
1649
原创 Codeforces Round #611 (Div. 3)-C. Friends and Gifts(图论)
题目链接:C. Friends and Gifts题目大意:有n个人,互相送礼物,每个人必须收到1个礼物且送出1个礼物,fi表示第i个人送礼物给第fi个人,fi=0表示第i个人没有送出礼物。要求每个人分别把礼物送给谁的任意一种序列。fi中至少有2个0;解题思路:分为2种情况,1、有人没有送出礼物且收到礼物 2、没有人送出礼物且收到礼物(全是没收到礼物且没送出礼物的人)。第1种情况:没...
2019-12-29 12:29:45
454
原创 Codeforces Round #610 (Div. 2)-B2. K for the Price of One (Hard Version)(dp)
题目链接:B2. K for the Price of One (Hard Version)题目大意: 有p元钱,n个商品价格分别为a1 a2…an。有2种选择,第1个选择是买1个商品,第2选择是买k个商品,要求k个商品中最贵的价格不超过你手上剩余的钱。每个商品只能买1次。解题思路: 很明显是个dp问题,首先我们按照价格从小到大给商品排序,dp[i]表示第i个商品花费的最少金额,每件商品有2种...
2019-12-25 16:54:15
91
原创 Codeforces Round #604 (Div. 2)-C - Beautiful Regional Contest(模拟,贪心)
题目:C - Beautiful Regional Contest题意:一场比赛颁发奖牌,要求(1)金牌g>0,银牌s>0,铜牌b>0(2)g>s&&g>b(3)获得金牌的人解的题数一定要多于银牌的题数,银牌的题数要多于铜牌的,铜牌的题数要多于没有得牌的(4)总共的牌数不超过n/2(向下取整),且要求奖牌最大化解题思路:首先,我们根据总奖牌不超过...
2019-12-06 11:15:17
128
原创 Codeforces Round #601 (Div. 2)-C. League of Leesins
C. League of Leesins题目大意:有某个从1到n的n个数的排列。现在给你n-2个这个排列的每3个连续排列随意打乱后的3个数字,要求你求出这个排列。代码:#include <bits/stdc++.h>using namespace std;int ma[100010][5];vector<int>p[100010];int ans[100010...
2019-11-20 15:32:42
198
原创 HDU - 5974-A Simple Math Problem(gcd)
HDU - 5974-A Simple Math Problem题目大意:给你2个正整数a、b,要求你找出2个数x、y满足2个条件(1)x+y=a(2)x和y的最小公倍数是b,有则输出x、y,没有就输出“No Solution”解题思路:首先按照正常的思路,分析题目,通过找b的因子来找到符合条件的x、y,b最大为10^9,也就是可以在sqrt(b)的时间复杂度内完成,但是题目是多组输出,也没有...
2019-11-13 19:36:43
148
原创 HDU - 5980-Find Small A(二进制)
HDU - 5980-Find Small A题目大意:这个题意和比赛时的题意不太一样,但是读完其实都差不多,都是求‘a’的个数。给你n个数,1<=每个数<=2^32-1,每个数都表示成32位的二进制,每8位代表1个字符。解题思路:将每个数表示成32位,比如1684234849,可以用二进制表示成01100100(d) 01100011© 01100010(b) 01100001(...
2019-11-12 18:44:05
169
原创 HDU - 1242-Rescue(bfs)
HDU - 1242-Rescue题目大意:给你一个n*m的矩阵,矩阵中’a’代表天使,'r’代表天使的朋友,‘x’代表守卫(虽然题目没说,可以根据样例推理出来),’.‘代表可以走的路,’#'代表不能走的路,每走一步花费1个单位时间,而遇到守卫要花费额外的1个单位时间打败它。解题思路:很典型的bfs,和我比赛时的另一题差不多。题目要求天使朋友解救天使所花费最小时间,注意,输入样例之中已经明确表...
2019-11-11 20:38:05
106
原创 HDU - 2612-Find a way(bfs)(为什么不是dfs而是bfs)
HDU - 2612-Find a way题目大意:给你一个图,其中’Y’‘M’’.’’#’’@’
2019-11-11 19:47:11
163
原创 Codeforces Round #599 (Div. 2)-B2. Character Swap (Hard Version)(思维)
B2. Character Swap (Hard Version)题目大意:给你2个字符串s,t(只包含小写字母),1次操作可以将s中的1个字符与t中1个字符交换。问是否能够通过操作使s与t相等。(其实如果能够实现,必定能在2n次内实现)解题思路:首先判断是否能够实现,很显然,当每个字母的个数是偶数使能够实现。通过分析题目有2种情况。(1)s字符串中有多个未配对的相同字母,比如s=‘aba’,...
2019-11-07 10:06:12
198
原创 Codeforces Round #598 (Div. 3)-B-Minimize the Permutation(贪心)
B-Minimize the Permutation在比赛的时候,第一题很顺利的过了,但是到第二题就有点抢时间,没注意读题,导致卡了很久,影响了后面本来能a的题。所以,无论前期怎么样,都该稳住心态。题目大意:给你n个数的序列(1~n)。有n-1种操作,操作n-1就是把a[n-1]与a[n]交换位置。每种操作至多只能使用一次。求字典序最小排列。比如 {1,2,3,5,4}>{1,2,3,4...
2019-11-05 19:59:29
142
原创 HDU - 2476-String painter(区间dp)
String painter题目大意:给你2个字符串,字符串s1和目标串s2。每次能选择一个区间进行粉刷(这个区间所有字符变成同一任一字符),问最少需要多少次将字符串s1变成目标串s2。解题思路:由复杂到简单,先求一个空白字符串变成目标串需要的次数,用dp[i][j]表示空白串从i到j粉刷需要最小的次数。然后再比较s1与s2。代码:#include <bits/stdc++.h>...
2019-11-02 11:56:05
125
原创 CodeForces - 148D-Bag of mice(概率dp)
Bag of mice题目大意:公主和龙在玩一个游戏,袋子里有w个白鼠,b个黑鼠。公主先抓,龙后抓,老鼠会随机跑出一只,以此为一个回合(所有的概率均相等)。公主抓到白鼠就赢了,否则就是龙赢了(龙抓到白鼠或者袋子里没有老鼠)。解题思路:经过观察,可以分为四种情况:(1)公主抓到白鼠,游戏结束 (2)公主抓到黑鼠,龙抓到白鼠,游戏结束(3)公主抓到黑鼠,龙抓到黑鼠,跑掉白鼠,游戏继续(4)公主抓到...
2019-11-01 17:50:02
168
原创 HDU - 4405-Aeroplane chess(期望dp)
Aeroplane chess题目大意:从0~n有n+1个格子,一个人从0开始出发,每走一次掷色子,行走的距离由色子的点数决定(1到6),每种可能性均相等。问到达n这个格子的平均次数。解题思路:由题意不难想到用dp[i]中的i表示所处的位置。首先如果我们从0开始推...
2019-11-01 17:23:23
95
原创 POJ-2184-Cow Exhibition(变种01背包)
Cow Exhibition题目大意:每头牛有智商和有趣2个值,给你n只牛要求怎么样选择使智商值总和、有趣值总和不为负数并且总和最大。解题思路:对于每头牛有选和不选2种选择,自然想到01背包,用dp[i]表示有趣值得大小,i表示智商值大小,但是智商值可能为负数,而01背包dp[i]中i为非负数,无法表示。但是,通过看题目的数据范围,n个牛总和无论是智商值还是有趣值都是不超过100000的,那么...
2019-10-30 19:48:40
147
原创 CodeForces - 1249E-By Elevator or Stairs?(dp)
E. By Elevator or Stairs?题目大意:有个n层楼的房子,要求通过2种操作花费最少时间到达楼顶,一种方式是走楼梯,另一种是坐电梯。解题思路:这2个操作有个区别是走楼梯不需要等待时间,而坐电梯需要等待时间。也就是说一个连续区间内只需要加一次等待时间。在上楼的过程中,我们有2种选择,走楼梯和坐电梯。那么由等待时间可以想到,我们要上楼时是在楼梯上还是在电梯中,因为在电梯中继续选择...
2019-10-29 19:45:12
162
原创 POJ-2432-Around the world(树形dp)
POJ-2432-Around the world题目大意:每个人有一个快乐值,这些人有上下级关系,每个人至多有一个直接上司,规定上司和他的直接下级不能同时出现。求出最大的快乐值之和。做题思路:通过分析题目,对于每个人都有去和不去2种选择,而由题意可知,一个人去则他的直接上司和直接下属不能去,如果这个人不去,那么他的直接上司和下属可以选择去和不去。那么得到状态方程:去: dp[1][r...
2019-10-28 20:20:01
220
原创 Codeforces Round #595 (Div. 3)-C2. Good Numbers (hard version)(思维)
题目:C2. Good Numbers (hard version)题意:给出一个数n要求大于等于n的最小数(3的不同幂次相加)。思路:比如可以是4=31+30,10=32+30;那么继续分析,n的数据范围是1018,只有logn的算法或者是通过题目推出公式才不会超时,然后看上面的例子,不难发现我们可以使用3进制将n表示出来,经过分析符合题意的数,其3进制只能为1或者0,再举个例子14=32+...
2019-10-23 15:29:07
132
原创 Codeforces Round #593 (Div. 2)-B. Alice and the List of Presents(快速幂、排列组合)
题目:B. Alice and the List of Presents题意:有n个礼物和m个盒子,每种礼物可以放多个但是不能放在同1个盒子里,要求所有盒子包含所有种类礼物(至少1个),问有多少种放法?分析:由题意可得每个礼物相对独立,只是要求每个礼物都存在,那么将这个问题分成n个子问题,1个礼物面对m个盒子有多少种放法?显然,对1个盒子有放和不放2种选择,那么我们总共有2m种放法,但是题目要...
2019-10-18 19:42:56
178
原创 牛客-直角三棱锥(公式推导)
题目:直角三棱锥思路:k是直角三棱锥的边在x,y,z上的长度,不妨在xoy平面考虑,以z轴上的顶点为初始点,在z轴方向上以单位长度下降,当初始长度为0时所包含整点个数为1,下降一个单位长度时增加3个整数点(总点数是4),再下降一个单位长度增加6个整数点(总点数是10)…(每个平面画个三角形)。可以总结出规律。根据1 2 4 7 11 16…这个数列的求和公式(n^3+5n)/6。最终推导出(k+...
2019-10-17 19:42:16
1867
原创 Codeforces Global Round 4-D. Prime Graph(伯特兰-切比雪夫定理)
题目:Codeforces Global Round 4-D. Prime Graph题意:给出n(顶点的个数),要求所得图满足:1、无平行边和自环2、边的总数是个质数3、每个点的度(也就是点所连边的个数)必须为质数思路:把相邻的俩个顶点连接,再把最后一个顶点和第一个顶点连接形成环组成这时的边是n,这时所有顶点的度都是2,显然当n不是质数时不满足条件,所以要用到下面的定理在n~3n/2的...
2019-10-15 21:12:36
253
原创 Educational Codeforces Round 74 (Rated for Div. 2)A. Prime Subtraction
刚开始准备素数打表,后来发现数据范围在10^18所以打表肯定会超时,想想还得用log(n)的算法,思路越想越偏,结果就卡死了,后来发现这题需要用到数论中的素数定理(知道了这题就是个水题)以下时百度百科的素数定理:素数又被称为质数,其含义就是除了数字一和本身之外不能被其他任何的数字除尽,根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的素数是2。而素数...
2019-10-10 19:43:15
84
原创 牛客——小欧的烦恼(bfs)
参考别人的代码,真的是写的非常漂亮。#include <bits/stdc++.h>using namespace std;#define maxn 100010const int inf=0x3f3f3f3f;int S[110],V[110];int dis[maxn];//记录花费int pre[maxn];//和nun数组模拟链表int num[maxn];i...
2019-09-18 21:33:02
157
原创 将一个十进制大数进行二进制转换
这题竟然是我们学校数据结构题。。。感觉要大数的基础才做得出来。其实也就是模拟。题目描述使用栈将一个很长(>30)的十进制数转换为二进制数输入若干个很长的十进制数每行一个输出转换为二进制,每行输出一个样例输入123456789012345678901234567890753951684269875454652589568545854758545824样例输出11000...
2019-09-16 18:01:35
1327
原创 The Preliminary Contest for ICPC Asia Shenyang 2019- K. Guanguan's Happy water
1、若n在1~k内,则计算a[1]到a[n]的和2、若n>k,则判断有多少个f[k+1]到f[2*k]这样的循环3、注意取模大致的思路就是这样(注意取模)#include <bits/stdc++.h>using namespace std;#define ll long long#define mo 1000000007int a[100];int f[100...
2019-09-14 20:37:02
135
原创 The 2019 Asia Nanchang First Round Online Programming Contest(B. Fire-Fighting Hero)(数组形式更容易理解)
找bug找了一天…#include <bits/stdc++.h>using namespace std;#define maxn 1100#define inf 0x3f3f3f3fint po[maxn];int m[maxn][maxn];int dis[maxn];int vis[maxn];int v,e,s,k,c;int dijkstra(int s...
2019-09-10 21:58:25
103
原创 The Preliminary Contest for ICPC Asia Xuzhou 2019-XKC's basketball team(二分)
代码可能不够精简#include <bits/stdc++.h>using namespace std;#define maxn 500010int a[maxn];struct node{ int v,p;}b[maxn]; //构造一个单调数组便于二分(二分查找的前提条件)int r[maxn];//记录结果int cou=0;int b_search(i...
2019-09-07 20:33:03
141
原创 STL妙用(HDU1247)
STL妙用(HDU1247)#include <bits/stdc++.h>using namespace std;map<string,int>m;int main(){ string s[50010]; int cou=1; while(cin>>s[cou]){ //ctrl+z结束输入 m[s[co...
2019-08-14 14:10:38
85
原创 字典树模板(HihoCoder - 1014)
字典树模板(HihoCoder - 1014)#include <bits/stdc++.h>using namespace std;struct node{ int z[30];int sum=0;}tr[1000010]; //数组大小开n(插入最多单词个数)*l(最长单词长度)int num=0;void tr_insert(char s[]){ ...
2019-08-14 10:49:01
110
原创 大数加法模板(hdu1002)
大数加法模板(hdu1002)#include <bits/stdc++.h>using namespace std;char a[1010];char b[1010];int aa[1010];int bb[1010];int c[1010];int main(){ int t; scanf("%d",&t); for(int g=1...
2019-08-14 09:12:53
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人