![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
Shufu_C
这个作者很懒,什么都没留下…
展开
-
codeforces 343A Rational Resistance
A. Rational ResistanceMad scientist Mikeis building a time machine in his spare time. To finish the work, he needs aresistor with a certain resistance value.However, allMike has is lots of ide原创 2015-08-27 14:44:34 · 535 阅读 · 0 评论 -
codeforces 343B Alternating Current 【栈】
B. Alternating Currenttime limit pertest1 secondmemory limit pertest256 megabytesinputstandard inputoutputstandard outputMad scientistMike has just finished constructing a new device原创 2015-08-27 14:12:30 · 626 阅读 · 0 评论 -
codeforces 343C Read Time 【二分】
C. Read TimeMad scientistMike does not use slow hard disks. His modification of a hard drive has notone, but n different heads that can read data in parallel.When viewed fromthe side, Mike's原创 2015-08-27 14:02:52 · 361 阅读 · 0 评论 -
ZOJ 3751 Diagonal
DiagonalTime Limit: 2 Seconds Memory Limit: 65536 KBAlice is very interested in the algorithm.He finds a interesting book called "Algorithmic puzzles" whichcontains more than 100原创 2015-08-27 13:33:53 · 272 阅读 · 0 评论 -
HDU 3449 Consumer 【有依赖背包】【dp】
ConsumerTime Limit: 4000/2000 MS(Java/Others) Memory Limit: 32768/65536 K (Java/Others)Total Submission(s): 1671 Accepted Submission(s): 873Problem DescriptionFJ is going to dosome原创 2015-08-27 13:03:08 · 342 阅读 · 0 评论 -
HDU 4292 Food 【网络流】
FoodProblem Description You, a part-time dining service worker inyour college’s dining hall, are now confused with a new problem: serve as manypeople as possible. The issue comes upas peop原创 2015-09-01 23:37:13 · 311 阅读 · 0 评论 -
Codeforces 567E President and Roads 【最短路】
President and RoadsBerlandhas n cities,the capital is located in city s, and thehistoric home town of the President is in city t (s ≠ t). The citiesare connected by one-way roads, the travel tim原创 2015-09-03 22:34:29 · 400 阅读 · 0 评论 -
7_6_E题 Crossing River [poj 1700]题解 (贪心)
题目链接简单题意有n个人,1条船,每次最多运两个人,速度是划得慢的人的速度,求最小耗费多少时间把所有人运过河。思路设所有人的划船速度从快到慢为T1~TnT_1 \text{~} T_n,则运送最慢两个人过河的方案是 1. T1,T2T_1,T_2 过去,T1T_1 回来 Tn−1,TnT_{n-1} ,T_n 过去 T2T_2回来 2. T1,TnT_1,T_n 过去,T1T_1 回来 T1原创 2016-07-10 22:07:04 · 357 阅读 · 0 评论 -
7_6_K题 Jessica's Reading Problem题解[POJ 3320](尺取)
题目链接简单题意一本书有几个知识点,一页有一个,问最少连续读几页书可以读到所有的知识点思路直接尺取(TwoPoints),然后记录一下最短的区间长度就可以了。代码#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <map>using namespace std;const int原创 2016-07-10 22:13:25 · 338 阅读 · 0 评论 -
7_6_M题 The Values You Can Make题解[Codeforces 687C](DP)
题目链接简单题意有n枚硬币,面值不尽相同,要给出价值和为k的硬币,问用价值和为k的硬币能组合出多少种不同的面值?思路动规 dp[i][k][s]dp[i][k][s] 代表前 ii 枚硬币中,价值和为 kk 的子集能否组合出价值为 ss 面值。 设硬币的面值为coin[i]coin[i] 则转移方程为 dp[i][j][k]=dp[i−1][j][k]∣dp[i−1][k−coin[i]][s原创 2016-07-10 22:36:58 · 633 阅读 · 0 评论 -
7_6_O题 Collecting Bugs题解[POJ 2906] (概率DP求期望)
题目链接简单题意有s个子系统 n种Bug分类,Bug属于各个子系统和各个种类的概率是一样的,每天都能发现一个Bug,问发现所有Bug期望的天数是多少天?思路概率dp求期望,设已经发现了i个子系统的j种bug,则当天发现的bug有四种情况 1. 属于已发现过的子系统和已发现过的分类,概率为is∗jn\frac{i}{s} * \frac{j}{n} 2. 属于未发现过的子系统和已发现过的分类,概率原创 2016-07-10 23:03:43 · 398 阅读 · 0 评论 -
7_6_P题 Wall 题解[poj 1113] (凸包)
题目链接简单题意给出城堡的顶点,要在城堡外建一圈城墙,城墙到城堡的距离最少为L,问城墙的长度最小为多少思路猜想,就是城堡顶点的凸包的周长+一个半径为L的圆的周长,证明如下 引自这里 证明如下:假如顺时针给出四个点A、B、C、D。组成了凸四边形ABCD。我们不妨过A点作AE垂直于AB,同时过A点再作AF垂直于AD,过B点作BG、BH分别垂直于AB、BC。连结EG,垂线段的长度为L,过A点以A原创 2016-07-10 23:19:58 · 252 阅读 · 0 评论 -
7_6_B题 Network题解[POJ3694] (LCA + 求桥 + 并查集)
题目链接简单题意给出一个无向图,然后给出一些点对,在点对之间连边,问每次连边之后图中还有多少桥。思路先用Tarjan算法求桥,同时用并查集缩点,把所有非桥的边缩起来,在每次加边的时候通过并查集,判断两点是否在缩起来的点中,如果是则直接返回,没有任何影响,如果不是则找两者的最近公共祖先,可以通过之前的Tarjan算法遗留的dfn信息来做,把沿途的所有边都缩起来。代码#include <cstdio>原创 2016-07-10 21:26:25 · 491 阅读 · 0 评论 -
2016 Multi-University Training Contest 2 1001 Acperience (简单数学)
题目链接简单题意给出一个向量(w1,w2,w3...,wn)(w_1,w_2,w_3 ...,w_n) ,要得到另外一个向量 B=(b1,b2,...,bn)|(bi∈{+1,−1}))B=(b_1,b_2,...,b_n) | (b_i \in \{+1,-1\})), 使∥W−αB∥2\left\| W - \alpha B \right\|^2最小 输出最小值的平方PS:∥X∥=x21+⋯原创 2016-07-22 14:45:44 · 344 阅读 · 0 评论 -
2016 Multi-University Training Contest 2 1009 It's All In The Mind (贪心)
题目链接简单题意有一个非增序列,序列中数的范围是0~100,只知道其中若干项的值,求a1+a2∑ni=1ai\frac{a_1+a_2}{\sum_{i=1}^{n}{a_i}} 的最大值。思路前两项尽量大,后面的项尽量小,同时保证序列非增,按照这个思路贪心的填数就可以了。代码#include <bits/stdc++.h>const int maxn = 1e3+10;int num[maxn原创 2016-07-22 14:55:00 · 308 阅读 · 0 评论 -
2016 Multi-University Training Contest 2 1011 Keep On Movin (简单数学)
题目链接简单题意有n种不同的字符,每种有aia_i个,用所有的字符来构造回文串,使最短的回文串长度最长,并输出该长度;思路很简单,如果某种字符为奇数个,就要有取出来一个放在回文串中间,剩下的放在回文串两侧,偶数个就直接分配在回文串两侧。所以这题的回文串个数应该是min(1,num_of_odd)min(1,num\_of\_odd) ,最短的回文串长度为(even/2/odd)∗2+1(even/2原创 2016-07-22 15:11:19 · 237 阅读 · 0 评论 -
2016 Multi-University Training Contest 2 1012 La Vie en rose (暴力)
[题目链接] (http://acm.hdu.edu.cn/showproblem.php?pid=5745)题意这题的题意是个坑。。。 意思是给一个字符串,在从某一位开始的m位字符中选一个每个字符都不相邻的子序列,然后把这个子序列中的每个字符和他在原串中的下一个字符交换位置,如果能够有一个子序列使交换完成后的字符串和给出的字符串一致,就表示该位可行,最后输出每一位是否都可行。思路因为选出来的子序原创 2016-07-22 15:34:13 · 326 阅读 · 0 评论 -
Codeforces 701A.Cards(贪心)
题目链接简单题意有n张牌,分给n/2个人,每人两张,要求每个人牌上的数值之和相等,输入保证有解思路先对输入按数值大小排序,然后依次分给每个人最大的,最小的、次大的,次小的,。。。因为输入保证有解,所以这样分肯定是可行解。代码include using namespace std;const int maxn = 1e3;struct No{ int v,id; bool oper原创 2016-07-23 16:57:21 · 481 阅读 · 0 评论 -
Codeforces 701B Cells Not Under Attack(模拟)
题目链接简单题意给出一个棋盘,往里面放棋子,棋子能攻击所在行列,问每次放完棋子后还有多少格子不能被攻击到思路很显然,把被占得行列删除后还能得到另外的一个新矩阵,矩阵的大小就是安全的格子个数,所以只要记录被占领的行列数即可。代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+10;int col[maxn];int原创 2016-07-23 17:02:20 · 763 阅读 · 0 评论 -
7_6_Q题 Brackets 题解[POJ2955](区间DP)
题目链接简单题意给出一些()和[]组成的序列,要求求出其中最长的合法的子序列长度是多少。思路一开始想的是把他转化成最长上升子序列来做,但是方括号和圆括号的交叉不好处理,所有转向用区间DP来做 dp[i][j] 表示区间[i,j]最长合法序列的长度,有可能是一整个完整的区间,也有可能是几个合法的小区间拼接的,所以对他的更新分两次,一次是来自[i+1,j-1],另一次来自枚举中点遍历一遍。代码#inc原创 2016-07-14 14:48:05 · 245 阅读 · 0 评论 -
7_6_R题 Bad Luck Island题解[Codeforces 540D](概率DP)
简单题意在岛上有三种生物,剪刀、石头和布,他们之间相互遇到被克制一方就会被杀死,两两之间的碰面时随机的。给出岛上初始时剪刀、石头和布的数量,最后只有一种生物留下来,求各种生物成为最终胜利者的概率。思路很明显的概率dp,dp[i][j][k]代表剪刀石头和布还剩i,j,k个时的概率。 转移方程为 石头和布碰面了,石头被杀死一个。 dp[i][j][k] += dp[i+1][j][k] *(do原创 2016-07-14 15:06:09 · 285 阅读 · 0 评论 -
7_6_S题 Not Equal on a Segment题解 [codeforces 622C] (贪心)
题目链接简单题意给出一个序列和多次询问,每次询问会给出一个范围l~r和一个数k,要求在l到r的区间里找出任意一个与k不同的数;思路只要给出的序列中存在两个以上的数,就肯定可以找到一个和k不同的数,只要记录一下同样的数最左的坐标,然后分情况判断输出就可以了。代码#include <cstdio>using namespace std;const int maxn = 2e5+10;int num[原创 2016-07-14 15:19:03 · 243 阅读 · 0 评论 -
7_8_A题 Article Decryption 题解[soj 3596](trie树)
题目链接简单题意给出几个单词和一个字母序列,问这个序列中最多有多少不重叠的单词思路简单的计数,但是因为单词的查询会超时(其实并不会),所以应该要用trie树来进行对单词的查询,但实际上因为数据比较弱,所以也可以直接暴力查。。。代码这是暴力的做法,trie树的做法之后再补上。#include <bits/stdc++.h>using namespace std;const int maxn =原创 2016-07-14 15:53:40 · 293 阅读 · 0 评论 -
7_8_K 题 Can you answer these queries?题解[hdu 4027](线段树)
题目链接简单题意一个区间上有一些数字,对区间有两种操作,一是打击,能够包l到r的数全部开方,二是查询,要返回l到r的和。思路很明显的区间修改和查询操作,但是因为是开方,所以没有那么的方便,但又可以发现,如果一个数变为一了,就不再需要开方了,可以根据这个进行优化。代码#include <bits/stdc++.h>#define max(a,b) (a>b)?a:b#define min(a,b)原创 2016-07-15 15:22:05 · 166 阅读 · 0 评论 -
7_4_A题 A Dangerous Maze题解 [Light oj 1027](求期望)
7_4_A题 A Dangerous Maze题解(求期望)题目链接简单题意有n扇门,门有两种功能: 1. 在x分钟后使人逃出迷宫 2. 让人浪费x分钟 每次浪费时间以后人会‘失忆’,即每次做选择时对门的选择是完全随机的. 求走出迷宫所需时间的期望思路不妨假设有m扇可以出去的门,正确的门使用的时间总和为sumt1sum_{t1},不正确的门使用的时间总和为sumt2sum原创 2016-07-05 00:57:20 · 376 阅读 · 0 评论 -
7_4_C题 Rochambeau题解 [poj 2912](并查集)
题目链接简单题意有n个小孩玩石头剪子布,有一个是裁判,裁判可以随意出招,其余的分成三组,组内的小孩只能出他所在的的组所使用的招,即,除了裁判以外,所有的小孩的出招都是固定的。现在给出一些两两对战的结果,问能否以此判断出谁是裁判。思路这是食物链(poj 1182)的一个变种,和食物链的区别在于有一个裁判,即所有包含裁判的比赛结果都是不可信的,所以可以枚举裁判,然后用不包含裁判的条件做和食物链那题一样的原创 2016-07-05 09:01:10 · 383 阅读 · 0 评论 -
7_4_D题 India and China Origins题解 [hdu 5652](并查集)
题目链接简单题意如图所示,有一个矩阵,上面是China下面是India,矩阵中0(白块)代表可以通行,1(黑块)代表阻碍,四方向联通,每年会往矩阵中多加一个1的块,问哪一年China和India被分离了。思路使用并查集,倒着来做,每次删除一个黑块,然后将该块和和周围的块进行合并,判断China和India是否连通了;代码#include <cstdio>#include <algorithm>#原创 2016-07-05 18:20:18 · 256 阅读 · 0 评论 -
7_4_E题 Edit distance题解 [hdu 2895] (贪心)
题目链接简单题意有两个字符串a,b。要把a变到b,有四种操作 a,d,m,c,要求输出按照这个顺序。求使用a和d最少的操作方式;思路因为输出要按admc的顺序,所以能用c的地方肯定可以用m,故只要先a或d把字符串变到一致,然后无脑m就行了。代码#include <cstdio>#include <string>#include <cmath>#include <iostream>using n原创 2016-07-05 18:27:39 · 267 阅读 · 0 评论 -
7_4_F题 Task 题解[hdu 4846](贪心)
题目链接简单题意有若干机器和任务,每个机器都有一个工作时间t1t_1和等级v1v_1 任务也有对应的t2t_2和等级v2v_2,一个任务能被机器执行的条件是 t1≤t2 & v1≤v2t_1 \leq t_2 \text{ & } v_1 \leq v_2,任务被执行之后获得 500∗t2+2∗v2500*t_2+2*v_2 的报酬,一台机器一天最多执行一次任务。求最多能执行多少任务,获得的收原创 2016-07-05 18:44:45 · 264 阅读 · 0 评论 -
7_4_G题 Optimal Milking 题解 [poj 2112] (Floyd + 二分 + 最大流)
题目链接题意有K台机器,C头牛,每台机器最多为M头牛工作,牛和机器,牛和牛,机器和机器可能有路,要让所有的牛都有机器使用,问移动距离最远的牛移动的距离最小是多少;思路先用Floyd求出任意牛和机器间的距离,然后二分距离,把小于等于该距离的边加入图中,流量为1,添加源点S,向所有机器连流量为M的边,添加汇点T,向所有牛连流量为1的边,从源到汇跑最大流,如果max_flow = C,则该距离可行,否则该原创 2016-07-05 18:58:06 · 215 阅读 · 0 评论 -
Codeforces 691D. Swaps in Permutation (并查集 + 优先队列)
题目链接简单题意给出一个序列,然后给出序列中可交换的位置,可以交换无限次,求最终结果中字典序最大的那一个。思路可以认为可交换位置的坐标之间是连通的,在同一个连通块之中排从大到小调整位置,把所有的连通块都调整完了以后,就是最终的解。这里用一个并查集来维护坐标之间的连通关系,然后用优先队列在父亲节点上保存所有的坐标,输出的时候只要从对应的父亲节点取出最大值即可。代码#include <bits/stdc原创 2016-07-16 15:56:41 · 534 阅读 · 0 评论 -
Codeforces 691C. Exponential notation(模拟)
题目链接简单题意把给出的数转化成科学计数法,要求整数部分非零且只有一位思路按题意模拟就好,注意一下细节就行了。 Python大法好代码s = input()if not '.' in s: s += '.'a,b = s.strip('0').split('.')if len(a) > 0: b = (a[1:] + b).rstrip('0') le = len(a)-1 a原创 2016-07-15 16:47:21 · 337 阅读 · 0 评论 -
Codeforces 691B. s-palindrome(模拟)
题目链接简单题意给一个字符串,判断他是否为镜像回文字符串思路自己是自己镜像的有AHIMOTUVWXYovwx,互为镜像的有bd,pq,直接从头到尾扫一遍,跟对称位置的字符的镜像对比一下就行了,如果对称位置的字符没有镜像,则返回一个特殊字符,这里用的是# Python大法好~~~代码m = {'b':'d','d':'b','p':'q','q':'p'}a = 'AHIMOTUVWXYovwx'原创 2016-07-15 16:41:43 · 656 阅读 · 0 评论 -
Codeforces 689D. Friends and Subsequences(二分/尺取 + ST表)
题目链接简单题意给出两个序列a,b,问有几个区间满足,a[l,r]的最大值等于b[l,r]的最小值。思路用ST表来完成RMQ的询问,再用类似尺取的办法来扫一遍区间,但是这里有三个指针,一个是枚举的左端点,另外两个是使得到max和min相等的区间的左右端点。当然也可以用二分来做,还是枚举左端点,使得到max和min相等的区间的左右端点。代码#include <stdio.h>#include <al原创 2016-07-15 16:19:25 · 367 阅读 · 0 评论 -
Codeforces 689C. Mike and Chocolate Thieves(二分)
题目链接简单题意有4个贼,他们共用一个容量为n的背包,他们偷的东西量为等比数列,即a,aq,aq2,aq3a,aq,aq^2,aq^3,给出等比数列可能的组合数m,问n的为多少。思路由题意有ak3≤nak^3 \leq n 从而得到a≤nk3 a \leq \frac{n}{k^3},很显然k不可能很大,所以可以二分n然后枚举k,即可得到对应a的数量,然后累加得到当前n所对应的方案数,和m进行比较原创 2016-07-15 15:53:14 · 529 阅读 · 0 评论 -
Codeforces 689B. Mike and Shortcuts(BFS)
题目链接简单题意有n个路口,从i到j路口之间的消耗是|i-j|,同时路口可以直接以1的耗费到达另外一个指定的路口。问从1到n的最小消耗。思路直接BFS搜图就可以了,每个点到他上一个点,下一个点,捷径直达的点建权为1的边。然后直接BFS搜即可代码#include <cstdio>#include <algorithm>#include <queue>using namespace std;int原创 2016-07-15 15:36:46 · 417 阅读 · 0 评论 -
Codeforces 689A. Mike and Cellphone(模拟)
题目链接简单题意给出在手机键盘上的操作路径(按键顺序),问这个操作路径是否唯一,能否平移得到另一种按键顺序。思路模拟就好了,但是要注意,因为0的那一列有四个数,要小心处理,最后就是栽在这上面了。代码#include <iostream>using namespace std;int num[15] = {0};int main(){ int n; cin >>n; str原创 2016-07-15 15:28:34 · 247 阅读 · 0 评论 -
Codeforces 697A. Pineapple Incident (模拟)
题目链接简单题意狗会在t时刻叫一声,之后每过s时间,他会叫两声,即在t+k*s和t+k*s+1时刻叫,给出一个时刻x,问狗会不会在x时刻叫思路当(x-t)%s ==0 或==1时叫,第一次特判,其他时间都不叫。代码#include <bits/stdc++.h>using namespace std;int main (){ int t,s,x; cin >> t >> s >>原创 2016-07-16 16:21:28 · 532 阅读 · 0 评论 -
Codeforces 697B. Barnicle(模拟)
题目链接简单题意把科学计数法转化成小数。思路字符串处理模拟就好,要小心谨慎,当时被疯狂hack T^T要注意的数据 1.0e0 0.0e0 1.005e0 0.0e10 这种#s = input()a = s[0]d = s[2:s.find('e')]b = int(s[s.find('e') + 1:]) + 1a = a + dwhile len(a) < b: a +=原创 2016-07-16 16:28:26 · 628 阅读 · 0 评论 -
Codeforces 696A. Lorenzo Von Matterhorn(map离散化)
题目链接简单题意给出一颗二叉树,和一些询问,询问有两种操作: 一是把u到v最短路上的所有边增加w的权值; 二是询问u到v最短路上的权值和。思路因为是二叉树,所以u到v的最短路肯定就是两点到LCA的路,直接暴力搞就好,但是因为节点数有1e18,数组开不下,所以用map保存。代码#include <bits/stdc++.h>using namespace std;map<long long,l原创 2016-07-16 16:38:00 · 407 阅读 · 0 评论