题目
LIA_7
这个作者很懒,什么都没留下…
展开
-
Codeforces 670D
题目:胡大加工厂要组装一种产品。组装该产品需要n种零件,每组装一个该产品需要第i种零件ai个。胡大有第i种零件bi个。此外,胡大还有一种特殊的零件,每个特殊零件可以当作任意一个其它零件使用。那么问题来了,胡大最多一共可以组装多少个该产品?Input对于每个样例:第一行包括两个正整数n 、k (1 ≤ n, k ≤ 1000),组成该产品需要的零件的种类数和胡大有的特殊零件的数量第二行包含n个数a1, a2, …, an (1 ≤ ai ≤ 1000),第i个数代表组装一个该产品需要第i种零件的数量原创 2020-07-20 10:26:57 · 168 阅读 · 0 评论 -
Codeforces 750C
题目:很多OJ有自己的比赛和等级,比赛分为A组比赛和B组比赛,规定当等级小于等于1899时,只能参加B组比赛,当等级大于等于1900时,只能参加A组比赛。现在给出某人若干次比赛的数据,数据包括他参加获得的等级的变化和参加的组别,在不知道初始等级的情况下,计算这个人参加完这若干次比赛后最高的等级是多少,计算结果必须是可行的,即不能出现不符合组别等级参赛的情况。输入输出:输入的第一行为一个整数n(1 ≤ n ≤ 200 000)。接下来输入n行,每行有两个整数ci 和di( - 100 ≤ ci ≤ 10原创 2020-07-20 10:19:36 · 182 阅读 · 0 评论 -
Codeforces 165B
题目:有n的任务需要完成,初始进度是v, 第一次加v/k , 第二次加 v/(kk), 第三次加 v/(kk*k), 求 完成进度的最小v思路:二分v,找到满足条件的最小的v,所谓满足的条件另外写一个函数再来判断。代码:#include <bits/stdc++.h>using namespace std;int n,k;int cal(int v,int k){ int sum=0; while(v) { sum+=v; v原创 2020-07-20 10:11:29 · 175 阅读 · 0 评论 -
uva 10047优先队列+BFS
题目大意:有一个独轮车,轮子上有5个不同的扇形颜色区域, 每个区域大小都是相等的(72°扇形)。 骑着这个车子在一个广场上行走。广场是有大小相同的正方形瓷砖铺成的。 独轮车从一块瓷砖走向相邻的一块,轮子正好转72°。只能走向相邻的上、下、左、右的瓷砖。从一个瓷砖走向下一个瓷砖耗费1秒钟。车子转方向90°耗费1秒钟,连转180°就要费2秒钟。白色的瓷砖可以走,黑色的不可以走(黑色的用"#“代替,白色的用”."代替)。题目要求从标有S的地方走向标有T的地方。轮子在开始时,蓝色是贴着地面的,要求到达终点时,原创 2020-07-20 10:00:55 · 119 阅读 · 0 评论 -
HDU 3085 双向BFS
题目大意:给出一个迷宫,一个男孩和一个女孩还有两只鬼,男孩每秒钟走3格,女孩每秒钟走1格,鬼每秒钟向四周分裂2格,问男孩和女孩能否在鬼占领迷宫之前汇合,能的话输出汇合时间,否则输出-1思路: 双向BFS,分别从男孩和女孩进行BFS,然后判断是否被鬼所占领,那个地方有没有走过。男孩和女孩走的地方可以用不同的标记来进行,如果同时可以走到同一个地方,说明是可以的。代码#include <bits/stdc++.h>using namespace std;const int N = 805;原创 2020-07-20 09:54:50 · 171 阅读 · 0 评论 -
FZU 1275和UVA11624
这两个题比较相似,放到一起来整理。FZU 1275放火烧山法外狂徒张三在n*m的平地上放火玩,#表示草,张三有分身,他的分身和他本人分别选一个#格子点火,火可以向上向下向左向右在有草的格子蔓延,点火的地方时间为0,蔓延至下一格的时间依次加一。求烧完所有的草需要的最少时间。如不能烧完输出-1。第一行,输入一个T,表示有T组测试数据。每组数据由一个n,m分别表示行列1 <= T <=100, 1 <= n <=10, 1 <= m <=10思路:基本就是广度优先原创 2020-05-22 14:26:47 · 168 阅读 · 0 评论 -
蓝桥杯练习赛——小明村庄通电
2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。 这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。 现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。 小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄,小明需要花费两...原创 2020-04-28 21:36:28 · 398 阅读 · 0 评论 -
牛客小白赛组队——upper_bound()
链接:https://ac.nowcoder.com/acm/contest/5158/B来源:牛客网你的团队中有 n 个人,每个人有一个能力值 ai ,现在需要选择若干个人组成一个团队去参加比赛,由于比赛的规则限制,一个团队里面任意两个人能力的差值必须要小于等于 k ,为了让更多的人有参加比赛的机会,你最多能选择多少个人参加比赛?比赛的时候想得太复杂了,又是去重又是排序乱七八糟的。最后还...原创 2020-04-28 21:13:56 · 424 阅读 · 0 评论 -
atcoder 163E——DP
题目链接题意:n个小孩,每个人有一个位置pi,还有一个权值Ai。求任意交换位置之后,每个小孩权值✖交换位置距离之和最大是多少。解析:贪心的思路,权值越大的小孩就越往边上去。仔细想一下应该是一个区间DPdp[l][r]=max(dp[l][r],max(dp[l+1][r]+Ai×∣pi−l∣,dp[l][r−1]+Ai×∣pi−r∣))dp[l][r]=max(dp[l][r],max(dp...原创 2020-04-28 21:05:06 · 208 阅读 · 0 评论 -
字典树+Codeforces1285D
字典树模板// 字典树模板#include <bits/stdc++.h>using namespace std;struct{ int num; // 如该节点是一个单词的结尾,记录单词的编号 int next[26];}trie[1000001];string s[100001],a;int tot,ans;void Insert(string c,...原创 2020-02-06 22:40:07 · 160 阅读 · 0 评论 -
Codeforces1285
An=input()str=input()L=0R=0i=0for i in range(len(str)): if str[i]=='L': L+=1 elif str[i]=='R': R+=1print(L+R+1)B#include <bits/stdc++.h>using namespace std;in...原创 2020-02-04 22:50:13 · 188 阅读 · 0 评论 -
1.20 Codeforces570 div2练习
A题题意:有n个候选人,m个城市,每个城市选出一个得票最多的候选人,然后在选出的这些候选人中,再选出一个得票最多的。关键是如果得票相同,选择编号小的。题目的坑:如果一个城市里都是0票,那么选1号候选人如果有多个高票候选人的票数相同,要从号小的里选代码#include <bits/stdc++.h>using namespace std;int n,m;int a...原创 2020-01-21 00:09:45 · 189 阅读 · 0 评论 -
子集和问题
绕来绕去还是最初的递归回溯问题……我觉得最经典的一步就是回溯的那一两行代码,比较优雅感觉递归回溯重要的就是在脑子里面想象出那一棵递归树的样子……Problem Description子集和问题的一个实例为〈S,t〉。其中,S={ x1 , x2 ,…,xn }是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得:。试设计一个解子集和问题的回溯法。对于给定...原创 2019-11-30 14:53:53 · 479 阅读 · 0 评论 -
HDU 2079
又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)Input输入数据的第一行是一个数据T,表示有T组数据。每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。接着有k行,每行有两个整数a(1 <= a <= 8),b(1 &l...原创 2019-10-27 09:44:05 · 403 阅读 · 0 评论 -
AtCoder Beginner Contest 139 E题(还未解决)
题意:给出n*(n-1) 的矩阵,第 i 行给出第 i 个人所应对的对手 j按照从1 ~ n 的顺序出战,每人每天只能打一场。问所需要的天数;思路:直接用一个队列模拟整个过程,需要记录上一轮对战的轮数以及当前对战的位置。分别用 ls[] 和 ci[] 来表示#include <bits/stdc++.h>using namespace std;const int N = ...原创 2019-09-03 20:31:34 · 219 阅读 · 0 评论 -
一道简单的差分+思维
题意是给两个数组c和t,然后对c数组进行变换,可以把换成ci+1+ci−1−ci ,问c数组能不能变换成t数组思路:分别求两个数组的差分数组,然后比较这两个差分数组是否相同,当然比较之前要先进行排序处理。最后不要忘记特判一下边界情况。#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+5;in...原创 2019-08-29 08:30:20 · 152 阅读 · 0 评论 -
HDU 1753(大数+高精度)
两个小数相加求和Sample Input1.1 2.91.1111111111 2.34443233431 1.1Sample Output43.45554344542.1import java.util.*;import java.math.*;public class Main{ public static void main (String[] args){ Sc...原创 2019-08-20 20:13:42 · 188 阅读 · 0 评论 -
HDU 1250 (Fib 数列)
题意:前四个数都是1,一个数是前四个数的和,求 f(n)正好今天在学Java的相关语句,找到了Java解这道题的方法。Java解大数真香啊……public class Main { // 类名最好用Main public static void main(String[] args) { Scanner cin = new Scanner(System.in); ...原创 2019-08-20 20:06:12 · 148 阅读 · 0 评论 -
FZU 2129 子序列个数 (动态规划)
题意:找出一个序列全部子序列的个数思路:直接暴力找不行,因为有相同的元素。要用dp的思想去找。令f[i] = 前i个元素的全部子序列。又分为以下两种情况当第i个元素在之前从来没有出现过时,f[i] = f[i-1] + f[i-1] +1。因为f[i-1] 就是一个子序列集合,另外再在他们后面加一个元素又是f[i-1],最后那个元素本身也是一个序列。当第i个元素在之前出现过时, f[...原创 2019-08-10 21:40:39 · 235 阅读 · 0 评论 -
Uva 11995 I Can Guess The Data Structure
题意:这道题的题目是“猜猜数据结构”,题意就是给你一些输入输出数据,让你根据这些数据判断是什么数据结构。要猜的数据结构只有三种,栈(stack)、队列(queue)、优先队列(priority_queue)。输出有5种情况,前三种分别是确定了一种数据结构,第四种是三种数据结构都不符合,第五种是有2种或2种以上符合。#include <bits/stdc++.h>using name...原创 2019-02-28 10:07:37 · 211 阅读 · 0 评论 -
洛谷P1045麦森数
这道题需要用到快速幂、高精度乘法还有位数求法位数求法简单公式,x^n的位数=n*log10(x)+1#if 1#include <bits/stdc++.h>using namespace std;int a[2600];int r[2600];void mul(int *a,int *b){ memset(r,0,sizeof(r)); for(in...转载 2019-02-23 22:30:12 · 195 阅读 · 0 评论 -
洛谷P1403
这个题需要考虑到“贡献程度”题目描述科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samuel II”进行数学研究。小联最近在研究和约数有关的问题,他统计每个正数N的约数的个数,并以f(N)来表示。例如12的约数有1、2、3、4、6、12。因此f(12)=6...转载 2019-02-24 18:39:27 · 190 阅读 · 0 评论 -
Uva 572 DFS
找联通块多写一句,dfs递归调用,bfs用队列调用#if 1///uva572#include <bits/stdc++.h>const int maxn = 105;char pic[maxn][maxn]; ///picture 缩写 存图int m,n,idx[maxn][maxn]; ///idx用来标记void dfs(int r,int c,int id) ...原创 2019-02-25 22:43:52 · 149 阅读 · 0 评论 -
C++ STL应用(持续更新……)
C++ STL 与ACM竞赛相关的应用1、vectorvector是动态数组,可以理解为是能够根据需要随时申请内存的动态数组。常用操作如下:容量vec.size() 向量大小vec.empty() 向量判空 (如果为空true、不为空false)修改vec.push_back() 向向量末尾添加一个元素vec.pop_back() 删除向量末尾元素vec.i...原创 2019-02-25 23:12:34 · 208 阅读 · 0 评论 -
洛谷P1540 机器翻译(简单的vector使用)
这是一道很简单的题,但是我觉得这里的vector 应用的不错,就把这个题放到这里来。我一开始想用stack去做,后来发现没有必要……题目题目背景小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。题目描述这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进...原创 2019-03-13 08:28:26 · 390 阅读 · 0 评论 -
P1059 明明的随机数 (排序+去重)
不久前学会了离散化,现在再看这道题就觉得十分的简单题目链接:https://www.luogu.org/problemnew/show/P1059记得先排序,再去重!#include <bits/stdc++.h>using namespace std;int n;int a[101],t[101];int main(){ cin>>n; f...原创 2019-03-13 08:31:36 · 211 阅读 · 0 评论 -
素数环问题
有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。为了简便起见,我们规定每个素数环都从1开始。输入 有多组测试数据,每组输入一个n(0<n<20),n=0表示输入结束。输出 每组第一行输出对应的Case序号,从1开始。如果存在满足题意叙述的素数环,从小到大输出。 否则输出No Answer。样例输入6830样...原创 2019-04-03 19:30:54 · 1626 阅读 · 0 评论 -
5.1训练赛
今天下午有一场训练赛。更新几道题的题解。题意:一天要做n件事,每件事给出 l 和 r,用来记录事情开始的时间和结束的时间。每次只能做一件事,每件事一旦开始必须做完,事情和事情之间不能连续做。求一天当中最多做的事情的件数。 Input: 5 1 2 3 4 5 6 7 8 9 10 Output: 5 Input: 5 1 3 2 4 3 5 4 6 5 ...原创 2019-05-01 22:51:27 · 134 阅读 · 0 评论 -
Educational Codeforces Round 65 (Rated for Div. 2)
Div. 2 的难度,前四道题还是比较简单的。A题智障题,不说了。B题现在还没看懂题意。C题大意:一共有n个人,分成m个组,每个组有ki个人。每个人都可以把一个消息告诉一个组里的人。问与第i个人知道同一个消息的人有几个。SampleInput7 53 2 5 402 1 21 12 6 7Output4 4 1 4 4 2 2样例解释每一组第一个数是组内人的个数...原创 2019-05-21 18:14:26 · 149 阅读 · 0 评论 -
ZOJ 1003(dfs+回溯)
题意:两个人踩气球,踩到气球就将自己分值乘以气球上的分值。若两人都算对分数,输出大的;若小的算错,输出大的;若大的算错,输出小的。算错是指不能有n个2~100数字相乘得到。思路:用回溯的思想。看看能不能找到初始分值。AC代码#include <bits/stdc++.h>using namespace std;bool fa,fb;int n;void dfs(int ...原创 2019-08-07 10:22:50 · 271 阅读 · 0 评论 -
ZOJ 1229 M-Gift(DFS水题)
题意:在一个小村庄里有一条美丽的河流,在河流中有N颗露出水面的石头排成一直列,并且我们对石头从1到N编号(从左岸到右岸),如下所示:[左岸]─[石头1]─[石头2]─[石头3]─…─[石头N]─[右岸]上图中,岸边到石头以及相邻石头间的距离都是1公尺。每次从1号石头开始,每次跳2I-1次,可以无限次跳,每次可以往左跳也可以往右跳。问是否可以跳到指定的石头上。思路:dfs,每次跳到的石头上都...原创 2019-08-09 14:55:21 · 147 阅读 · 0 评论 -
POJ 1948 Triangular Pastures
题意:给出线段长度,求出组成面积最大的三角形的面积。思路:dp的思路,又有点像暴力搜索的意思。开bool类型的dp[i][j]dp[i][j] 表示边长为i,j的情况是否存在。根据三角形的性质,任何一条边的长度都不可能超过周长的一半,可以用这个条件进行剪枝。#include <iostream>#include <algorithm>#include <c...原创 2019-08-09 18:52:56 · 183 阅读 · 0 评论 -
codeforces 1178EArchaeology (字符串+思维)
题意:给一个字符串,找出最长回文子串,长度要大于字符串长度的一半。有两个特点任意相邻两个字符不相同只有a, b, c, 三个字符构成一个字符串思路:由于子串对称,可以从前后同时开始找。当Si = Sj 时,标记下两个字符当Si != Sj 时,一定有以下三种情况Si+1 = SjSi = Sj-1Si+1 = Sj-1其中第三种情况可以归为i++,j-- 的下一种情况里...原创 2019-08-09 21:21:41 · 328 阅读 · 0 评论 -
POJ1064 (简单二分)
题意:有N条绳子,他们的长度分别为Li。如果从他们中切割出K条长度相同的绳子的话,这K条绳子每条最长能有多长。答案保留到小数点后两位。思路:二分搜索的模型解决:“求满足某个条件C(x)的最小(大)的x”这一问题。这个题里C(x):可以得到K条长度为x的绳子由于长度为Li的绳子最多可以切出floor(Li / x) 段长度为x 的绳子,因此C(x):(floor (Li / x) )的总和...原创 2019-08-07 21:00:09 · 697 阅读 · 0 评论 -
POJ1979 红与黑 DFS
dfs裸题吧#include<iostream>#include<algorithm>using namespace std;char mapp[22][22];int ans=1;int n,m;int x,y;void dfs(int a,int b){ mapp[a][b] = '#'; ans++; if( a-1 >0 &&am...原创 2019-08-07 21:10:41 · 141 阅读 · 0 评论 -
洛谷P1088外星人
这应该是道模拟题,但是我看到了一种用STL next_permutation()函数的做法,觉得很有趣。next_permutation() 和 prev_permutation()是一对亲兄弟。简单来讲,next_permutation() 可以将一个数列升序 从小到大输出,而prev_permutation() 可以将一个数列降序从大到小输出注意:这两个函数都是对数列直接进行操作,改变数...原创 2019-02-23 10:53:27 · 137 阅读 · 0 评论