
水题
文章平均质量分 70
cillyb
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #365 (Div. 2) B. Mishka and trip
自己写了好久,弄了好多预处理,才勉强a了,,再去看看大神的代码,自己还是差的太远了。。菜鸡我的:#includeusing namespace std;const int maxn = 1e5+5;typedef long long ll;ll a[maxn], b[maxn], num, sum1[maxn];int main(void){ int n, k;原创 2016-10-13 22:45:14 · 397 阅读 · 0 评论 -
5-10 排座位 (25分) (floyd传递闭包)
5-10 排座位 (25分)布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(\le≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后原创 2017-03-24 15:12:20 · 827 阅读 · 0 评论 -
蓝桥杯 历届试题 危险系数(暴力 bfs)
题意:我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。本题的任务是:已知网络结构,求两站点之间的危险系数。思路:枚举所有点,判断去掉该点后x,y之间的连通性是否发生变化原创 2017-05-23 22:43:12 · 619 阅读 · 0 评论 -
蓝桥杯 历届试题 网络寻路(暴力 dfs)
题意:X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中间节点必须不同。思路:枚举每个点,对每个点dfs找能搜到长度为4的就ans++代码:#include#include#原创 2017-05-23 23:52:05 · 964 阅读 · 0 评论 -
Educational Codeforces Round 22 B. The Golden Age(枚举)
题意: n = xa + yb (a,b >= 0)给你x,y和一个区间[l, r],问在这区间内连续最长的不满足n的长度。思路:枚举a, b 把在[l, r]区间内的都找出来, 排个序,两两相减加一就是连续不满足的长度。(把l-1 和 r+1也放进去更好操作一些)因为x, y 代码:import java.math.BigInteger;import java.ut原创 2017-06-06 00:46:07 · 637 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution
思路:a[i] ^ a[j] = x -> a[j]^x = a[i], 读入的时候找到前面有多少个对应的a[j]^x加上即可。找的时候最大可能是2^17-1,所以数组要开的大一点。代码:#includeusing namespace std;const int maxn = 1e6+5;typedef long long ll;int book[maxn], n, x原创 2016-12-06 23:24:38 · 963 阅读 · 0 评论 -
PAT 1101. Quick Sort (25)
题意:给你一个长度为n的数组,问你有几个数满足左边的都比它小,右边的都比它大,并输出他们。思路:自从11月退役后好久好久没做题了。。不会做题了,,这么水的题,只要找到每个数左边的最大值和右边的最小值跟自己比较一下就行了,我上来居然想到用线段树、、、、其实从头和从尾巴扫一遍记录下最值就可以了。。。代码:#include<iostream>#include<cstdio>#...原创 2018-03-07 20:03:55 · 355 阅读 · 0 评论 -
PAT 1148 Werewolf - Simple Version(20 分)
题意:有n个人,其中有两个狼人,其他都是好人,现在每个人都会说某人是好人还是坏人。其中有两个人会说谎,一个狼人一个好人。现在让你找出哪俩人是狼人,若不存在则输出No Solution。(n <= 100)样例:5-2+3-4+5+4输出:1 4 思路:因为n很小,所以两个for暴力枚举说谎的人,这样假定哪两个说谎之后,就可以去验证下,是否是两个狼人...原创 2018-09-09 14:02:38 · 585 阅读 · 0 评论 -
PAT 1149 Dangerous Goods Packaging(25 分)
题意:给你n对不能同时存在的货物,现在有m对包裹,让你验证里面是否存在不能同时存在的物品。(n<=1e4,m<=1e2)思路:定义一个map<string, set<string> > 用于记录每个物品与之不能同时存在的物品集合。判断每个包裹时,逐个读入,判断下该物品是否存在于pre(pre是用于保存之前物品所有不能同时存在的物品集合)中,如果有,则说明与之...原创 2018-09-09 14:28:27 · 486 阅读 · 0 评论 -
蓝桥杯 买不到的数目(递推)
地址:点击打开链接思路:dp[i]记录i是否可以凑得,所以可知dp[i] = dp[i-a] || dp[i-b网上还看到个公式:a*b-a-b....不知道怎么推出的代码:#include#include#includeusing namespace std;const int maxn = 1e7+5;int dp[maxn];int原创 2017-02-27 23:46:32 · 680 阅读 · 1 评论 -
Codeforces Round #385 (Div. 2) B. Hongcow Solves A Puzzle
题意:给你两个相同的拼图,每个拼图里的X都只能整体水平竖直移动,不能旋转,问你通过整体移动能不能让这两块拼图的X组成一个矩形(中间不能为空)。思路:因为每个拼图内部的X不能移动,所以要想拼成矩形,只有一个拼图中的X组成的是一个矩形才可以。如何判断一个拼图里的X是不是一个矩形?找到一行有连续X的然后找下面几行相同的连续的X。数出数量,判断下是不是为X的数量和即可。代码:原创 2016-12-18 11:47:32 · 645 阅读 · 0 评论 -
hdoj 5933 ArcSoft‘s Office Rearrangement(贪心,模拟)
题目地址:点击打开链接一开始读错题,以为可以合并任意两个区间。。其实是只能合并相邻的。思路:分情况讨论,每次判断当前点是比avg大还是小,如果大的话就把多余的部分放到下一个点上,拆操作是商-1次。余数merge到下一个的操作是2次(一次拆,一次merge),如果小于平均的话就全merge到上一个去。 当然考虑当前和下一个的和能不能作为一次。代码:#inclu原创 2016-11-30 23:50:56 · 442 阅读 · 0 评论 -
Codeforces Round #304 (Div. 2) D. Soldier and Number Game(筛选素因子,前缀和)
题目链接:点击打开链接题意:两个整数a, b。求出a, a - 1, a - 2........b +1这些整数最多能被拆分成多少个数相乘。思路:数量最多,当然都要拆成素数。因为是要查1e6次区间,所以自然能想到前缀和。要计算每个数最多拆成几个素因子,可以筛出来,然后再计算前缀和。记得以前写过筛素因子...结果一时没能想起来...代码:#includeusing na原创 2016-11-18 20:21:19 · 458 阅读 · 0 评论 -
UVALive 7512 November 11th(模拟, 思维)
题目地址:点击打开链接题意:给出坏凳子的位置, 座位不能挨着坐, 问最多可以做多少人, 以及最少可以坐多少人使得不能再有可以坐的位置.思路:最多坐多少人:(每段连续区间的凳子数+1)/2即为最多可做的人数最少坐多少人:一段连续区间内,每三个位置坐一个人010 010,不足三个座位的再坐一个人这样一遍for循环复杂度是10^6, 再乘上测试组数10^2....按理说10^原创 2016-12-01 16:05:09 · 424 阅读 · 0 评论 -
UVALive 7500 Boxes and Balls(模拟,二分)
题目地址:点击打开链接题意:你手里有N个球,现在需要用你手里尽可能多的球使得这个游戏经过多次游戏后形成一种恒定状态思路:最后形成一种恒定状态的情况是每个盒子里放得球数一定是个连续的序列,1, 1 2, 1 2 3, 1 2 3 4....因为只有这样从任意一个框里取出一个球放到另一框后再排序,得到的还是原来的序列。所以知道这后只要求比n小的最大前n项和即可,可以用二分来原创 2016-12-01 15:57:15 · 578 阅读 · 0 评论 -
Codeforces Round #118 (Div. 2) C. Plant (找规律)
题目链接:点击打开链接问你第n个大三角形中有几个小三角形是朝上的,每个朝上的小三角形下一年会变成三个朝上一个朝下,每个向下的小三角下年会变成三个朝下一个朝上。我们可以设第i年朝上的是ai个朝下的是bi个,因此可以得到递推式:ai = 3*ai-1 + bi-1, bi = 3*b*-1 + ai-1, 可以看到这个式子很像,两者做差得到ai-bi = 2*(ai-1 - bi-原创 2016-11-19 15:18:32 · 967 阅读 · 0 评论 -
hdoj 5912 Fraction(模拟)
题目地址:点击打开链接因为数据量很小,直接倒着推模拟即可。代码:#includeusing namespace std;typedef long long ll;const int maxn = 15;ll a[maxn], b[maxn], n;int main(void){ int ca = 1, t; cin >> t; wh原创 2016-12-02 13:05:41 · 515 阅读 · 0 评论 -
hdoj 5914 Triangle(规律,斐波那契)
题目地址:点击打开链接思路:要减去最少的让它不能构成三角形,可知构成三角形的条件是a+b>c,不符合的极限条件a+b=c,所以可以想到留下斐波那契数,这样就能拿最小的让它不满足构成三角形的条件。代码:#includeusing namespace std;const int maxn = 25;int fib[maxn] = {0, 1}, sum[max原创 2016-12-02 13:36:07 · 479 阅读 · 0 评论 -
Codeforces Round #380 (Div. 2) B. Spotlights (模拟)
题意:剧场舞台是尺寸为n×m的矩形场。导演给你舞台的计划,谁的演员会遵循。对于每个单元格,在计划中说明在该单元格中是否有一个actor。你会在舞台上放置一个聚光灯在一个良好的位置。聚光灯将投射光在四个方向之一(如果你从上面看舞台) - 左,右,上或下。因此,聚光灯的位置是它被放置的单元格和它发光的方向。如果两个条件成立,则位置是好的:在单元格中没有放置聚光灯原创 2016-11-20 23:46:55 · 476 阅读 · 0 评论 -
PAT 1150 Travelling Salesman Problem(25 分)
题意:给你n个点,m条边,现在给你k条路径,问你每条路径分别属于什么。TS simple cycle if it is a simple cycle that visits every city; TS cycle if it is a cycle that visits every city, but not a simple cycle; Not a TS cycle if it is...原创 2018-09-09 14:38:47 · 631 阅读 · 0 评论