思路
文章平均质量分 54
wang2147483647
这个作者很懒,什么都没留下…
展开
-
Hdu 3682 To Be an Dream Architect(Hash)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3682思路:Hash。对于每个(x,y,z)坐标的立方体,映射为x*n*n+y*n+z,判断有多少个不同数字即为删去立方体个数。#include#include#include#includeusing namespace std;int n,m;vector ans;inline原创 2016-08-16 10:07:10 · 621 阅读 · 0 评论 -
UVAlive 6800 The Mountain of Gold?(负环判断)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4812思路:若存在负环且0点在负环中,则有解。则用SPFA判断是否存在负环,若点i在负环中,则该点的dist置为-INF(下次不再访问),若某点已在负环中,则更新时该点无需进入队原创 2016-08-24 19:33:56 · 663 阅读 · 0 评论 -
CCF 201512-4 送货(欧拉路径+字典序最小)
题目地址:http://115.28.138.223/view.page?gpid=T34思路: 图连通条件下 有向图回路:每个点入度=出度 有向图路径:每个点入度=出度的或只有两个点a、b,a的入-出=1,b的出-入=1 无向图回路:每个点度为偶数 无向图路径:每个点度为偶数或只有两个点的度数为奇数 注意:字典序最小求法(按照两点编号和从大到小排序,建边)原创 2016-09-07 21:44:20 · 1219 阅读 · 0 评论 -
UVALive 6843 Volume Control(暴力压位)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4855思路:由所给时限,可暴力枚举数字。关键在于如何记录数字是否出现过(数字最大9e8,不可直接开int数组记录)。可使用vector开bool,使得bool长度为1位,节省八倍原创 2016-10-11 20:41:10 · 628 阅读 · 0 评论 -
Gym 100531J Joy of Flight(思路+物理)
题目地址:http://codeforces.com/gym/100531/attachments思路:风速与飞机速度单独考虑,先算出起点与终点x与y轴的位移。仅考虑风速时,算出风的作用使飞机移动的距离,如果加上最大速度仍不能使飞机到达,则无解。否则,取平均速速作为飞机的速度,按时间模拟即可。#include#include#include#include#includeusin原创 2016-10-26 18:19:51 · 473 阅读 · 0 评论 -
UVALive 3645 Objective: Berlin(最大流)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1646思路:拆点,将航线看做点。设一源点与汇点。对于每个航线i,将其拆为两点,i和i',连一条容量为最大客容量的边;对于所有起点为出发点的航线j,连一条源点到j的容量为INF的边原创 2016-10-30 21:34:24 · 446 阅读 · 0 评论 -
Codeforces 764C Timofey and a tree(思路)
题目地址:http://codeforces.com/contest/764/problem/C思路:对于所有两点颜色不同的边,一定为其中一点与根节点相连(若不相连则子树颜色不同),所有两点颜色不同的边组成的图,其边总数为tot,则根节点即为度为tot的点(与所有颜色不同的点相连)。#include#include#include#include#include#include原创 2017-02-03 15:05:55 · 392 阅读 · 0 评论 -
Codeforces Round #395 (Div. 2) D. Timofey and rectangles(思路)
题目地址:http://codeforces.com/contest/764/problem/D思路:考虑两相接触的矩形,由于矩形边长为奇数,所以若能相接触必然接触的两个矩形横纵坐标(以某一顶点代表此矩形)奇偶性至少有一个不同(左右:横坐标奇偶性不同;上下:纵坐标奇偶性不同)。而坐标共有四种:奇奇,偶偶,奇偶,偶奇,颜色有四种,保证可接触的矩形颜色不同即可:奇奇4,奇偶3,偶奇2,偶偶1。原创 2017-02-03 15:51:08 · 377 阅读 · 0 评论 -
Poj 3657 Haybale Guessing(二分+并查集)
题目地址:http://poj.org/problem?id=3657思路:由于每个位置的数唯一,对于两个区间[l,r]最小值为a、[L,R]最小值为A。若区间[l,r]被区间[L,R]完全包含且a<A,此时存在矛盾且为唯一的矛盾。则可以二分询问Q,判断1---tot内的询问是否合法。每次二分时,将1---tot之间的询问按照最小值从大到小排序(优先处理大数,以后判断时仅需判断小数所在的区间是原创 2017-03-03 16:57:01 · 890 阅读 · 0 评论 -
CodeForces - 748F Santa Clauses and a Soccer Championship(思路)
题目地址:http://codeforces.com/problemset/problem/748/F思路:由于整个结构为树,则每个点之间的最短路径唯一,则可以发现住宿处个数存在且最小为1。则住宿处为某一点将所有team分成两部分且在所有配对的team的最短路上,则住宿处的位置为某子树中包含家乡的点的个数不小于k的最小子树的根节点。则分队可以将该子树的两部分直接分配:dfs过程中将家乡加入左边原创 2017-03-04 22:16:21 · 732 阅读 · 0 评论 -
Poj 2566 Bound Found(尺取法)
题目地址:http://poj.org/problem?id=2566思路:选择一区间使得其和的绝对值最接近t。(1)当序列a[1...n]元素单调时,设置两指针:l、r。设当前数的和为sum,当sum大于t时,sum-=a[l];当sum小于t时,sum+=a[r]。则依次遍历可求出最接近t的值。(2)由于该序列中元素可正可负,不可直接使用尺取法,需将其做适当转化:设sum[i]为该原创 2017-03-07 18:45:41 · 542 阅读 · 0 评论 -
Poj 2823 Sliding Window(单调队列)
题目地址:http://poj.org/problem?id=2823思路:设置两单调队列:q(存储从小到大的值的下标)、Q(存储从大到小的值的下标)(初始时,两队列仅一元素1)。从1--->n依次扫描数组中元素:对于q,若当前值大于或等于队尾元素则将其下标i入队。否则,不断弹出队尾元素直到当前值不小于队尾元素x对应的a[x],若当前窗口元素个数大于k(i-队头元素>=k),则不断出队,直到i原创 2017-03-14 17:22:28 · 349 阅读 · 0 评论 -
hdu 6166 Senior Pan(SPFA+二进制分组)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6166思路:1.从集合A中一点到集合B中一点的最短路径:设立源点0,连向所有A集合中的点,边权值为0;设立汇点,B集合中点向其连边,边权值为0。求源点到汇点的最短路即为集合A到集合B的最短路。2.将最短两点分别分到A、B集合:由于图中任意两点标号不同,其二进制表示中必有至少一位不同。按二进制原创 2017-08-25 21:28:24 · 722 阅读 · 0 评论 -
Gym - 101201J Shopping(RMQ+二分)
题目地址:http://codeforces.com/gym/101201/attachments思路:1.题目相当于对于一数,依次对[L,R]区间内的数取模,结果即为答案。2.若对于区间内一大于v的数,其取模结果仍为本身,无作用。则问题变为快速寻找区间内第一个不大于v的数(区间内数无序)。3.考虑二分区间[L,R],mid=(L+R)/2。若区间[L,mid]内最小值不大于v原创 2017-09-23 19:58:42 · 646 阅读 · 0 评论 -
Hdu 5785 Interesting(Manacher+区间处理)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5785思路:1.L[i]表示以i开始的所有回文的结束位置和,R[i]表示以i位置结尾的所有回文开始位置和,则答案为sigma(R[i-1]*L[i])(x1*y1+x1*y2+...x1*yn+x2*y1+x2*y2+.....x2*yn+......=(x1+x2+....xn)*y1+(x1原创 2017-09-06 22:32:07 · 620 阅读 · 0 评论 -
Hdu 6214 Smallest Minimum Cut(最小割)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6214思路:1.要求在最小割的情况下割集边数最小,对于两种约束条件,可通过一定方法将其转化为单约束。2.令边权值为w*MAX+1,MAX为一较大数,使得当割不同时,边权值作用最大;当割相同时,边数起作用。3.求最大流,边数即为maxFlow%MAX。#include#include原创 2017-09-27 16:48:48 · 483 阅读 · 0 评论 -
Poj 3106 Flip and Turn(模拟+优化)
题目地址:http://poj.org/problem?id=3106思路:一、模拟+栈优化1、所有操作均对应与两种操作的组合,对应题目中的1和V操作。设1操作为1,V操作为0。则所有操作分别对应:112010H101V0A10B1010C101010原创 2017-10-06 18:56:37 · 573 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) A. Vitaly and Strings(思路)
题目地址:http://codeforces.com/problemset/problem/518/A思路:类似数字,如果存在解,则a的值加一肯定为一个解,否则a的值加一为b。注意处理进位,最后与b字符串比较即可。#include#include#include#includeusing namespace std;const int maxn=150;char st[max原创 2016-07-25 21:36:36 · 379 阅读 · 0 评论 -
Codeforces Round #305 (Div. 1) B. Mike and Feet(思路)
题目地址:http://codeforces.com/problemset/problem/547/B思路:求出l[i],rt[i],表示a[i]作为区间【lt[i],rt[i]】内的最小值。则L=rt[i]-lt[i]+1,即为size为L的strength。ans[L]=max(ans[L],a[i]),即为size为L的最大strength。#include#include#in原创 2016-07-26 11:14:42 · 689 阅读 · 0 评论 -
Codeforces Beta Round #95 (Div. 2) D. Subway(环最短路)
题目地址:http://codeforces.com/problemset/problem/131/D思路:寻找环。首先将度数为1的节点入队,将与度数为1的节点的度数减一。将度数小于2的节点入队并标记,最后没有被标记的节点就是组成环的节点。#include#include#include#include#include#include#define debuusing n原创 2016-07-26 20:09:00 · 357 阅读 · 0 评论 -
Hdu 3667 Transportation(最小费用流+思路)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3667思路:平方关系,直接建图每次增广并不是最优。。。。1^2=1,2^2=1+3,3^2=1+3+5,4^2=1+3+5+7.......所以,对于每条边,若流量为c,则在x与y之间连c条边,流量均为1,费用分别为a[i],3*a[i],5*a[i].........由于每次增广时流量相同原创 2016-08-16 19:23:38 · 520 阅读 · 0 评论 -
UVAlive 7368 Airports(建图+最小路径覆盖)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5390思路:先将每个点之间的最短路求出,将每条路径抽象为点,每架飞机抽象为边(对于两条路径(i,j)若飞机能在规定时间内从i到达j,则连边)。则该问题转化为用最少的边覆盖全部的点原创 2016-08-19 19:57:38 · 712 阅读 · 0 评论 -
Hdu 5521 Meeting(建图+最短路)
题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=5521思路:边数太多,不能直接建图。对于每个集合,设置一个虚拟点,对于每个集合中的点u:连一条u->S权值为0的边(点在集合中,花费为0);连一条S->u权值为w的边(从集合中一点到另一点花费w)。分别计算从点1到i和从点n到i的最短路,枚举i,则ans=min( ans,max ( d原创 2016-08-19 20:40:43 · 710 阅读 · 0 评论 -
Hdu 4435 charge-station(BFS+贪心)
题目地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=4435思路:编号大的点应尽量避免建立加油站(2^0+2^1+2^2+......+2^id则不符合题意(从某加油站出发到i,从i并不能返回加油)。若i为加油站,则若从加油站1不能到达i,则不满足题意)。若不符合,则该点必须建立加油站。#include#include#includ原创 2016-08-19 22:06:01 · 633 阅读 · 0 评论 -
UVAlive 6623 Battle for Silver(暴力+思路)
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4634思路:图中两条边之间不能交叉,则最终的选择的点集中的点只能有1,2,3,4个,暴力枚举即可。#include#include#include#includeus原创 2016-08-20 19:33:01 · 647 阅读 · 0 评论 -
URAL 2068 Game of Nuts(博弈)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2068思路:x个石子,x=2*k+1。分三堆2*k+1=(2*k1+1)+(2*k2+1)+(2*k3+1)=2(k1+k2+k3+1)+1。k1+k2+k3+1=k,每分一次,k1+k2+k3减少1,所以石子最多分k次。求出总次数,判断奇偶即可。#include#include#in原创 2016-08-22 19:36:22 · 749 阅读 · 0 评论 -
URAL 2069 Hard Rock(思路)
题目地址:http://acm.timus.ru/problem.aspx?space=1&num=2069思路:对于起点要么横着走,要么竖着走,则共有四种方式,直接竖横、横竖、先横后竖再横、现竖后横再竖,对于中间路径取最大值即可。#include#include#include#includeusing namespace std;const int maxn=1e5+50;原创 2016-08-22 19:53:15 · 604 阅读 · 0 评论 -
Codeforces 589B Layer Cake(两次排序)
题目地址:http://codeforces.com/problemset/problem/589/B思路:#include#include#include#include#define debuusing namespace std;const int maxn=4000+50;typedef long long LL;struct Node{ int r,c;原创 2016-08-10 19:33:39 · 497 阅读 · 0 评论 -
POJ 3175 Finding Bovine Roots(思路)
题目地址:http://poj.org/problem?id=3175思路: 若x.123....这个数字的平方是一个整数的话,那必然,sqr(x.124)>ceil(sqr(x.123))[ceil向上取整]。所以,可以从小到大枚举它的整数部分x,遇到的第一个满足结果的x,即为答案。#include#include#include#include#includeusin原创 2016-08-01 19:31:06 · 762 阅读 · 0 评论 -
Hdu 3366 Passage (概率DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3366思路:如果已知行走顺序,则可通过DP求解。要使得选择最优,则应按p/q从大到小的顺序选择(遇到士兵的几率越小,出去几率越大的路应首先考虑)。d[i][j]表示在第i条路,还有j的钱能够出去的概率,则若能直接出去ans+=[i][j]*p[i],若遇到士兵d[i+1][j-1]+=d[i][原创 2016-07-30 11:41:49 · 1279 阅读 · 0 评论 -
Hdu 3363 Ice-sugar Gourd(思路)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3363思路:有解:两种情况。第一种,中间一分刚好,即切一刀。第二种,将第一个与最后一个连接起来,组成一个圆,过圆心将圆分成两部分,总有一种方式符合题意。枚举起点i,判断sum[i+n/2]-sum[i]是否等于H/2即可。#include#include#include#inclu原创 2016-07-29 21:53:30 · 1055 阅读 · 0 评论 -
Codeforces Round #298 (Div. 2) D. Handshakes(贪心)
题目地址:http://codeforces.com/problemset/problem/534/D思路:把握手次数为i的人标号放入栈s[i]中,当栈非空时,栈顶元素进入房间并让i++。 否则,s[i-1],s[i-2],s[i-3]各出栈一个,并让i-3(代表三人出去比赛)。当所有人都进入房间或者i#include#include#include#include#inclu原创 2016-07-27 19:20:25 · 467 阅读 · 0 评论 -
Codeforces Round #298 (Div. 2) C. Polycarpus' Dice(思路)
题目地址:http://codeforces.com/problemset/problem/534/C思路:对于当前色子,求出其他色子所能掷出的最小值之和与最大值之和。当其他色子取最小值时,该色子取最大值A-(n-1),大于该值均不可能;当其它色子取最大值,该色子取最小值A-sum+a[i],小于该值均不可能。则由不可能区间可以求出不可能掷出的数字个数。#include#includ原创 2016-07-27 18:58:41 · 511 阅读 · 0 评论 -
Codeforces Round #244 (Div. 2) E. Police Patrol(数学)
题目地址:http://codeforces.com/problemset/problem/427/E思路:显然,位置选在所有数的中位数时距离最短。则从两头取,累计和即可。#include#include#include#includeusing namespace std;typedef long long LL;const int maxn=1e6+50;LL ans;原创 2016-07-27 16:36:22 · 586 阅读 · 0 评论 -
Codeforces Round #202 (Div. 1) A. Mafia(二分,思路)
题目地址:http://codeforces.com/problemset/problem/348/A思路:将问题集中在裁判上,每轮都有一人当裁判,设进行k轮,则k*n-sum>=k,sum为每个人想玩游戏轮数之和,二分答案即可。#include#include#include#includeusing namespace std;typedef long long LL;in原创 2016-07-26 22:04:53 · 489 阅读 · 0 评论 -
Codeforces Round #201 (Div. 1) C. Number Transformation II(思路)
题目地址:http://codeforces.com/problemset/problem/346/C思路:显然,要使得步数最少,每次应使得a减少尽量多。a=min{ a-1,min{ a-a%A[i] } } 。每次选择符合条件的A[i]值,即使得a-a%A[i]>=b的A[i]值(若此时不符合条件,以后也不会符合(a在不断减小))加入到下次判断,不断重复,知道a==b为止。#inc原创 2016-07-26 21:47:20 · 573 阅读 · 0 评论 -
Uva 10934 Dropping water balloons(递推)
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1875思路:红书上分析:#include#include#include#includeusing namespace std;typedef long lo原创 2017-10-05 18:43:54 · 576 阅读 · 0 评论