03 2016 档案
摘要:题目链接:http://codeforces.com/problemset/problem/659/E题意:给定n个点和m条双向边,将双向边改为单向边,问无法到达的顶点最少有多少个?分析:无法到达的话即入度为0。 DFS判断每一个连通块中是否存在环,如果存在环,就能保证环中每个点的...
阅读全文
摘要:题目链接:http://codeforces.com/contest/659/problem/D题意:若干条直线围城的湖,给定直线的端点,判断多少个转点会有危险?(危险是指直走的的话会掉进水里)分析:观察法:减去竖直水平的四条边,剩下的每两条边的交点就是答案。求叉积:看两个向量夹角...
阅读全文
摘要:写这道题题解的目的就是纪念一下半个小时才读懂题。。。英文一多读一读就溜号。。。 读题时还时要静下心来。。。题目链接:http://codeforces.com/contest/659/problem/B题意:给定地区及来自相应地区的人的分数,每个地区选两个分数最高的人 参加区域赛,...
阅读全文
摘要:题目链接:http://codeforces.com/contest/659/problem/A题意:一个圈,按逆时针编号,给定起点,方向和步数,问终点在几号?分析:很简单的模拟。。。注意答案为0的时候应该输出n。。。代码:#includeusing namespace std;i...
阅读全文
摘要:C语言纠错大赛的一道题,正好拿来补博弈~~ 给的代码写的略奇葩。。不过还是直接在上面改了。。题目链接:http://codeforces.com/problemset/problem/549/C题意:给你n个数,两个人依次拿走一个数,最后剩下的k个数的和若为奇数,则先手赢,否则后手...
阅读全文
摘要:题目链接:http://poj.org/problem?id=2348题意:给定两个数,两个人每次从较大数中减去较小数的倍数,谁先得到0谁获胜,为谁赢?分析:令一种可能出现的整数对为(a,b),其中(b>a)。有两种情况b−aa,可以从b中减去至少2个a,假设可以从b中最多可以减去...
阅读全文
摘要:相比数据结构的题。。感觉这种想啊想的题可爱多了~~~代码量还少。。。。题目链接:http://poj.org/problem?id=2484题意:一圈n个硬币,两人轮流从中取一或两个硬币,(只能取相邻的两枚硬币),取完的获胜,问谁赢?分析:这里注意,连续的硬币中取出若干个后,被分割...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4193题意:给定序列,可以把后面的连续的部分移到最前面来,问多少种移法使得最终得到的序列的前i项和均大于等于0(1≤i≤n)?分析:先将数组前后拼接起来,记录每个位置的前缀和。然后去找长...
阅读全文
摘要:Codeforces 658 E. Bear and Contribution
阅读全文
摘要:题目链接:http://codeforces.com/contest/658/problem/D题意:给定合法多项式,改变一项的系数,使得P(2)=0,问有多少种方法?分析:暴力求和然后依次试一试肯定不行啦~ 仔细想想,多项式和为0,就是说存在某个2i,使得剩下的和等于x∗2i,(...
阅读全文
摘要:题目链接:http://codeforces.com/contest/658/problem/C题意:给定结点数,树的直径(两点的最长距离),树的高度(1号结点距离其他结点的最长距离),写出树边的端点,一种情况即可。如不存在,输出-1。规定根为1号结点。分析:首先可以明确hint ...
阅读全文
摘要:题目链接:http://codeforces.com/contest/658/problem/B题意:给定元素编号及亲密度,每次插入一个元素,并按亲密度从大到小排序。给定若干操作,回答每次询问的元素是否排在前k个。分析:先附上我的垃圾做法: 之前没怎么用过set,比赛的时候第一反应...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1704题意:给定棋子及其在格子上的坐标,两个人轮流选择一个棋子向左移动,每次至少移动一格,但是不可以碰到其他棋子。无路可走的时候视为输。问最后谁赢。分析:将棋牌上的棋子两两看成一组,将他们之间的空格看成棋子,这样就可以...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586题意:无向图,给定边及边权重,任意两点之间都有一条唯一的道路,道路上每个点只能出现一次。给定询问,求询问的结点之间的距离。分析:路上每个点只能出现一次~可以转化成有根树,问题也即为...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1470题意:给定若干有向边,构成有根数,给定若干查询,求每个查询的结点的LCA出现次数。分析:还是很裸的tarjan的LCA。 这题我真的要吐槽!!调试了好久啊!!不是MLE就是RE。。。。查询数量没给,所以要用矩阵来...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1330题意:裸的LCA代码:倍增:#include#includeusing namespace std;const int maxn = 10005;const int maxm = 20;struct Edge{i...
阅读全文
摘要:题意:给定一棵有根树T,给出若干个查询lca(u, v)(通常查询数量较大),每次求树T中两个顶点u和v的最近公共祖先,即找一个节点,同时是u和v的祖先,并且深度尽可能大(尽可能远离树根)。通常有以下几种算法:在线算法,每次读入一个查询,处理这个查询,给出答案。离线算法,一次性读入...
阅读全文
摘要:题意:给定一棵有根树T,给出若干个查询lca(u, v)(通常查询数量较大),每次求树T中两个顶点u和v的最近公共祖先,即找一个节点,同时是u和v的祖先,并且深度尽可能大(尽可能远离树根)。通常有以下几种算法:在线算法,每次读入一个查询,处理这个查询,给出答案。离线算法,一次性读入...
阅读全文
摘要:题目链接:http://poj.org/problem?id=2109参考:http://blog.csdn.net/code_pang/article/details/8263971题意:给定n,p,求k使得kn=p(1≤n≤200, 1≤p#include#include#in...
阅读全文
摘要:题目链接:http://poj.org/problem?id=2109参考:http://blog.csdn.net/code_pang/article/details/8263971题意:给定n,p,求k使得kn=p(1≤n≤200, 1≤p#include#include#in...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1328题意:在x轴上有若干雷达,可以覆盖距离d以内的岛屿。 给定岛屿坐标,问至少需要多少个雷达才能将岛屿全部包含。分析:对于每个岛屿,计算出可以包含他的雷达所在的区间,找到能包含最多岛屿的区间即可。 可以看出这是一个典...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1753题意:给定冰箱门的开关情况,改变一个门则其所在行列的门都会发生改变,求出改变门的最少操作使得最终所有门都是打开状态。代码:bfs+状态压缩很容易想到~~ 这里的状态压缩要需要多加小心,注意一下存储的是翻转门的情况...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1094题意:给定前n个字母的大小关系,问你是否根据前xxx个关系得到上升序列所有关系都无法确定唯一的一个序列第xxx个关系导致出现环分析:此题坑略多。。。。m大小没给!!这个很无语啊。。。数组开大点马上AC了。。。无法...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1753题意:由白块黑块组成的4*4方格,每次换一个块的颜色,其上下左右的块也会被换成相反的颜色。问最少换多少块,使得最终方格变为全白或者全黑~分析:典型的枚举。 这种问题被称为开关问题,关键是要对周围的块翻动对自身的影...
阅读全文
摘要:补个很久之前的题解。。。。题目链接:http://poj.org/problem?id=2488题意:马走“日”字,让你为他设计一条道路,走遍所有格,并输出字典序最小的一条。分析:dfs~~~代码:#include#include#includeusing namespace st...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/D题意:x个熊拿着相同重量的物品,从1号结点沿着路走到N号结点,结点之间有边相连,保证可以从1号走到N号。 The total weight that travels across...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/C题意:给定序列,偶数位的数字比两边都大,则成为nice,只可以交换两个数字,问有多少种交换方式使得最后的序列为nice。分析:比赛的时候找规律,找呀找了好久都没看出来。。。。由于只...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/C题意:给定序列,偶数位的数字比两边都大,则成为nice,只可以交换两个数字,问有多少种交换方式使得最后的序列为nice。分析:比赛的时候找规律,找呀找了好久都没看出来。。。。由于只...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/B题意:要求你构造一个长度为n的字符串使得通过使用m个操作,最终获得字符a。已知第i个操作将字符串中开头的字符串ai换成字符bi,长度减少1。问一共有多少种字符串构造方法。分析:直接...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/B题意:要求你构造一个长度为n的字符串使得通过使用m个操作,最终获得字符a。已知第i个操作将字符串中开头的字符串ai换成字符bi,长度减少1。问一共有多少种字符串构造方法。分析:直接...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/653/A题意:给定序列,找是否存在连续的三个数。分析:排序~去重~直接判断~~代码:#include#include#includeusing namespace std;const in...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/645/D题意:给定n个机器人的m个能力大小关系,问你至少要前几个大小关系就可以得到所有机器人的能力顺序。分析:拓扑+二分。 注意最终的顺序不能缺点,先把度为0的点入队,如果度为0的点的个数...
阅读全文
摘要:题目链接:http://codeforces.com/contest/645/problem/C题意:给定01串,将k头牛和农夫放进, 0表示可以放进,1表示不可放进,求农夫距离其牛的最大距离的最小值。分析:第一遍读题没看清,直接写成dp。。。然后样例都不过,我开始怀疑人生怀疑自己...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/645/B题意:给定步数和排列,每步可以交换两个数,问最后逆序数最多是多少对?分析:看例子就能看出来肯定是不断往中间逼近,然后交换头尾两个,给定交换的对数,直接算就好了,复杂度O(1)代码:...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/645/A题意:2*2的八数码问题分析:这题n为2,不需要搜索,直接判断字母排列顺序就好了。 注意,如果n为奇数,直接看逆序数是否相同。代码:#include#includeusing na...
阅读全文
摘要:题意:八数码问题也称为九宫问题。编号为1~8的8个正方形滑块被摆成3行3列,棋盘上还有一个空格,每次可以把与空格相邻的滑块移到空格中,而它原来的位置就成了新的空格。给定初始局面和目标局面,计算出最少的移动步数。 参考来源:八数码的八境界方法1:暴搜+queue,如果空格用’0’表示...
阅读全文
摘要:本文根据博客以及课堂老师讲授内容整理而来。吐槽:继上周介绍了Minimax和Expectimax后,外教这周又给我们介绍了马尔科夫模型,上周兴高采烈的感觉对Optimal Policy有点理解了但是今天被束大神一问彻底懵逼(一不小心暴露了渣渣特质),下课又研究了一会才发现之前理解的...
阅读全文
摘要:本文根据博客以及课堂老师讲授内容整理而来。吐槽:继上周介绍了Minimax和Expectimax后,外教这周又给我们介绍了马尔科夫模型,上周兴高采烈的感觉对Optimal Policy有点理解了但是今天被束大神一问彻底懵逼(一不小心暴露了渣渣特质),下课又研究了一会才发现之前理解的...
阅读全文
摘要:作为回溯法的典型,水一下。题意:棋盘上放置8个皇后,每个皇后的攻击范围为同行同列和同对角线。要求找出所有解,使得她们互不攻击。分析:回溯法。 逐行放置,对列和对角线进行检查,使用vis数组保存状态。回溯注意在各个出口都要将条件“恢复原状”。代码:#includeusing name...
阅读全文
摘要:作为回溯法的典型,水一下。题意:棋盘上放置8个皇后,每个皇后的攻击范围为同行同列和同对角线。要求找出所有解,使得她们互不攻击。分析:回溯法。 逐行放置,对列和对角线进行检查,使用vis数组保存状态。回溯注意在各个出口都要将条件“恢复原状”。代码:#includeusing name...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5644题意:每天都有p[i]个飞行员进行阅兵,飞行员只工作一天。 m个休假公式,花费tt[i]元让飞行员在休假ss[i]天后回来上班。 可以花费Q元雇佣新的飞行员,但是直到P天后才能上班...
阅读全文
摘要:题意:变形的约瑟夫环,最初为每个人编号1到n,第i次删去报号为i的人,然后从它的下一个人开始重新从1开始报号,问最终剩下第几号人?分析:首先看一下裸的约瑟夫环问题: 共n个人,从1开始报数,报到k的人从环中退出,问最后剩下的一个人的编号是多少?为取模方便,假设下标从0开始,倒推分...
阅读全文
摘要:题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=677&pid=1003题意:求长度为n的序列中,每个字符(a~z)连续出现不超过3次的种数。分析:数位dp,设dp[i][j]表示进行到第i...
阅读全文
摘要:题意:给定一串密码, 判断是否合法。长度不小于4不能重复经过任何点不能跳过中间点,除非中间点已经经过一次。分析:3*3直接记录出可能出现在两点之间的点,直接模拟就好。 注意审题,别漏了判断。代码:#include #include#include#includeconst int ...
阅读全文
摘要:题意:给定长方形,每次从中切去一个最大的正方形,问最终可以得到多少正方形。分析:过程类似求gcd,每次减去最小的边即可。代码:#include #include#includeusing namespace std;int main (void){ int T;cin>>T;...
阅读全文
摘要:题意:给定由字符串块(字符及连续出现的个数)组成的字符串t,s,求t串中有多少个s。分析:KMP 这题唯一需要思考的地方就是如何处理字符串块。第一想到是把他们都展开然后进行KMP,可是展开后实在太长,所以必须按块进行处理,就要把所有相邻的相同的块进行合并成一个大块。 注意模式串开头...
阅读全文
摘要:题意:给定序列,将前a个数进行逆序或正序排列,多次操作后,求最终得到的序列。分析:仔细分析可以想到jrj && i#include#include#includeusing namespace std;const int maxn = 200005;int a[maxn], b[m...
阅读全文
摘要:题意:给定序列,将前a个数进行逆序或正序排列,多次操作后,求最终得到的序列。分析:仔细分析可以想到jrj && i#include#include#includeusing namespace std;const int maxn = 200005;int a[maxn], b[m...
阅读全文
摘要:题意:按顺序给定列和行进行涂色,输出最终得到的方格颜色分布。分析:记录下涂的次序,如果某个元素的横和列都被涂过,那么就选择次序最大的颜色。代码:#include#includeusing namespace std;const int maxn = 5005;int num[max...
阅读全文
摘要:题意:模拟模拟~~代码:#includeusing namespace std;const int maxn = 1005;int a[maxn], b[maxn], fa[maxn], fb[maxn];int main (void){ int n;cin>>n; f...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/650/C题意:给定n*m的矩阵,要求用最小的数表示每个元素,其中各行各列的大小关系保持不变。分析:将所有元素从小到大排序,然后找到每个元素相应位置进行填充,由于题目要求是每行每列的大小关系...
阅读全文
摘要:题意:若干张照片,从头开始可以向左右两边读,已经读过的不需要再读,有的照片需要翻转,给定读、滑动和翻转消耗的时间,求在给定时间内最多能读多少页?分析:首先明确,只横跨一次,即先一直读一边然后再一直读另一边,这样消耗的滑动时间最少。是否能在给定时间内读完页数很好判断,所以用二分+枚举...
阅读全文
摘要:题意:求欧几里得距离与曼哈顿距离相等的组数。分析:化简后得到xi=xj||yi=yj,即为求x相等 + y相等 - x与y均相等。代码:#include#includeusing namespace std;const int maxn = 1000000 + 5;typedef ...
阅读全文
摘要:题意:给定序列,重新排序,使严格上升的子序列最多。求这些子序列总长度。分析:贪心,统计每个元素出现次数,每次从剩余的小的开始抽到大的,直到不再剩余元素。代码:#include#includeusing namespace std;const int maxn = 1005;int ...
阅读全文
摘要:题意:两根操纵杆,每分钟操纵杆消耗电量2%,每分钟又可以给一个操纵杆充电1%(电量可以超过100%),当任何一个操纵杆电量降到0时,游戏停止。问最长游戏时间。分析:贪心,每次选择电量剩余最少的充电。代码:#include#includeusing namespace std;con...
阅读全文
摘要:%:对于二维向量p1=(x1,y1),p2=(x2,y2),定义内积p1⋅p2=x1x2+y1y2,外积p1×p2=x1y2−y1x2,则判断点q是否在线段p1−p2上:先利用外积判断q是否在直线p1p2上,(p1−q)×(p2−q)=0;再利用内积判断q是否在线段p1−p2上,(...
阅读全文
摘要:题意:给定区间和该区间对应的权值,挑选一些区间,求使得每个数都不被K个区间覆盖的最大权值和。分析:如果K=1,即为区间图的最大权独立集问题。可以对区间所有端点排序后利用动态规划的方法,设dp[i]为只考虑区间右端点小于等于xi的区间所得到的最大总权重。dp[i] = max(dp[...
阅读全文
摘要:题意:给定区间和该区间对应的权值,挑选一些区间,求使得每个数都不被K个区间覆盖的最大权值和。分析:如果K=1,即为区间图的最大权独立集问题。可以对区间所有端点排序后利用动态规划的方法,设dp[i]为只考虑区间右端点小于等于xi的区间所得到的最大总权重。dp[i] = max(dp[...
阅读全文
摘要:题意:N个工件要在M个工厂加工,一个工件必须在一个工厂做完,工厂一次只能处理一个工件。给定每个工件在每个工厂加工所需时间,求出每个工件加工结束的最小时间平均值。分析:工厂一次只能处理一个工件,那么其他要在这个工厂处理的工件就要排队等待,如果有a个工件要在该厂处理,花的时间分别为n1...
阅读全文
摘要:题意:N个工件要在M个工厂加工,一个工件必须在一个工厂做完,工厂一次只能处理一个工件。给定每个工件在每个工厂加工所需时间,求出每个工件加工结束的最小时间平均值。分析:工厂一次只能处理一个工件,那么其他要在这个工厂处理的工件就要排队等待,如果有a个工件要在该厂处理,花的时间分别为n1...
阅读全文
摘要:题意:给定长度为m的序列s,求一共有多少对p,q,使得:p+s+q长度为n,且’(‘数与’)’数相等。p+s+q的任意前缀’(‘数比’)’数多。其中s,p,q均为’(‘和’)’组成的序列。分析:设dp[i][j]为长度为i的序列中’(‘比’)’多的个数为j的情况数,很容易想到时间和...
阅读全文
摘要:题意:线段树做法分析:因为每次都是在当前位置的前缀区间查询最大值,所以可以直接用树状数组优化。比线段树快了12ms~代码:#include#include#include#includeusing namespace std;//[)const int maxn = 100005,...
阅读全文
摘要:题意:n个蛋糕编号从小到大编号,j号蛋糕可以放在i号上面,当且仅当j的体积严格大于i且i= 0 && j #include#include#includeusing namespace std;//[)const int maxm = 100005, maxn = maxm num...
阅读全文
摘要:题意:给定若干个上限upto以及集合中在[1,upto]中的元素个数,问是否存在这样的集合使得集合中的元素除以5的余数的个数相等。分析:首先可以想到区间的数与其除以5的余数和区间编号分别一一对应,这样我们就可以在他们之间建立容量为1的边,而由于规定某个区间的元素个数,所以我们在源点...
阅读全文
摘要:A. Far Relative’s Birthday Cake题意:求在同一行、同一列的巧克力对数。分析:水题~样例搞明白再下笔!代码:#includeusing namespace std;const int maxn = 105;char a[maxn][maxn];int m...
阅读全文

浙公网安备 33010602011771号