05 2016 档案

摘要:题目链接:http://codeforces.com/contest/673/problem/A 题意:一个人看一个90分钟的节目,然后告诉你一些有趣的时刻。这个人假如在15分钟内还没有看到有趣的时刻,那他就关电视。问这个人能看多长时间的电视。 记下两两节目的时间差,起始是0终止是90不要忘记。然后 阅读全文
posted @ 2016-05-31 23:55 Kirai 阅读(203) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/672/problem A. Summer Camp(打表) 题意:123456789...一串字符串,问第n个是什么数字。 塞一个表进去。 1 /* 2 ━━━━━┒ギリギリ♂ eye! 3 ┓┏┓┏┓┃キリキリ♂ mind! 阅读全文
posted @ 2016-05-31 20:56 Kirai 阅读(200) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/137/problem/A 题意:一个人搬东西,每次只能搬相同的东西,最多只能搬相同的东西不超过5个。问最少搬多少次。 模拟就行了,每次维护前一个物品,遇到两个退出情况中的一个就断开,更新当前的物品数和物品和答案。 阅读全文
posted @ 2016-05-31 20:20 Kirai 阅读(155) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/137/problem/B 给n个数字,要求修改成1~n的全排列数中的一个,修改的次数尽可能少,问最少需要修改几个数。 记下数组里出现的数字都是什么,之后处理的时候,遇到出现大于1次的说明要修改。有一个trick那就是ai<=50 阅读全文
posted @ 2016-05-31 19:49 Kirai 阅读(205) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/137/problem/C 题意:给n对数,分别是一个事件的起始和终止时间。问被有几个事件被其他事件包含。 思路:先排序,按照起始时间优先,终止时间次要排。每次维护当前的终止时间。 由于排序,第i+1个的起始时间一定比第i个的起始 阅读全文
posted @ 2016-05-31 19:26 Kirai 阅读(466) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/676/B 递推,dp(i, j)表示第i层第j个杯子,从第一层开始向下倒,和数塔一样的题。每个杯子1个时间能倒满,从上开始向下倒时间为t,那每个杯子不满的时候对下面的贡献一定是0,所以当dp[i][j]>= 阅读全文
posted @ 2016-05-31 16:14 Kirai 阅读(174) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 给两个操作:M X Y:将X和Y看成一类。 S X:将X单独划归成一类。 最后问的是有多少类。 并查集,但是带有删除操作。然而并查集本身不支持删除,网上说可以引入一个id来表示一个点。就好像一个人 阅读全文
posted @ 2016-05-31 14:00 Kirai 阅读(200) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2377 于是就找了一道最大生成树的AC了一下,注意不连通的情况啊,WA了一次。 阅读全文
posted @ 2016-05-31 11:11 Kirai 阅读(161) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3367 求一个无向图上权值最大的伪森林。 伪森林:一个图的连通子图,当且仅当这个子图有且仅有一个环。 既然是一个图的连通子图,那这个图本身就是连通的就没有疑问了,我们就可以贪心地找尽可能大的边,把他们并在 阅读全文
posted @ 2016-05-31 11:03 Kirai 阅读(153) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2398 思路RT,和POJ2318一样,就是需要排序,输出也不一样。手工画一下就明白了。注意叉乘的时候a×b是判断a在b的顺时针还是逆时针侧,>0是顺时针测,<0是逆时针侧,本题对应看成右、左侧,特别注意。 阅读全文
posted @ 2016-05-30 21:03 Kirai 阅读(187) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2818 题意:有N个块,每次有两个操作: M x y表示把x所在的那一堆全部移到y所在的那一堆的下方。 C x 询问在x下方有多少个方块。 用并查集,在路径压缩的时候后序更新当前块下有多少个其他块,注意这 阅读全文
posted @ 2016-05-30 09:22 Kirai 阅读(230) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2828 由于最后一个人的位置一定是不会变的,所以我们倒着做,先插入最后一个人。 我们每次处理的时候,由于已经知道了这个人的位置k,这个位置表明,在他之前一定有k个空位,于是将他插在第k+1个位置上。我们可以在线段树上直接二分,根据这个位 阅读全文
posted @ 2016-05-29 20:24 Kirai 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3635 题意:有n个龙珠,n个城市。初始状态第i个龙珠在第i个城市里。接下来有两个操作: T A B:把A号龙珠所在的城市的所有龙珠全部转移到B城市中。 Q A:查询A龙珠,要求:A龙珠所在城市,该城市龙 阅读全文
posted @ 2016-05-29 16:07 Kirai 阅读(215) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1811 求一堆数据的拓扑序。 处理:x>y就是x到y一条边,x<y就是y到x一条边。关键问题是处理x=y的情况。 假如x=y,就有问题了。假如不处理的话,可能会被当成少处理一个点而使结果编程UNCERTA 阅读全文
posted @ 2016-05-29 14:33 Kirai 阅读(186) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1753 和上一个题一样,将初始状态存成01矩阵,就可以用位运算优化了。黑色白色各来一遍 阅读全文
posted @ 2016-05-29 13:49 Kirai 阅读(218) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3279 题解:http://www.cnblogs.com/helenawang/p/5538547.html 阅读全文
posted @ 2016-05-29 13:38 Kirai 阅读(223) 评论(0) 推荐(0)
摘要:在找割边的时候,假如用点做线索,比如a到b有两条无向边。 现在是有重边的情况,假如现在从a点到b点,根据线索,我们认为a是b的父亲了,那我们从b点再回去的边就一定是走不了了。这样的情况下,假如low(b)> dfn(a),那我们的算法会认为a和b之间存在一条割边。这显然是不正确的,我们应当有一个合理 阅读全文
posted @ 2016-05-27 23:27 Kirai 阅读(236) 评论(0) 推荐(1)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 给一张无向图,每一条边都有权值。找一条割边,使得删掉这条边双连通分量数量增加,求权值最小那条。 注意有重边,ACEveryDay里群巨给的意见是tarjan的时候记录当前点是从哪条边来的。 注意假 阅读全文
posted @ 2016-05-27 20:26 Kirai 阅读(403) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2874 这题有不连通的情况,特别注意。 觉得是存query的姿势不对,用前向星存了一遍,还是T…… ……TARJAN也T了…… 在线胡搞T了,等下写个离线的。 TLE代码: 阅读全文
posted @ 2016-05-27 14:30 Kirai 阅读(193) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827 缩点后统计入度和当前强连通分量中最小花费,然后记录入度为0的点的个数和花费和就行了。 阅读全文
posted @ 2016-05-27 10:36 Kirai 阅读(233) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/676/problem/C 原题题解链接:http://www.cnblogs.com/vincentX/p/5405468.html 太菜了,昨晚光想着分块,却没考虑做尺取的时候,对于不需要变化的,那对计数器到k不做贡献。早上恍 阅读全文
posted @ 2016-05-26 10:49 Kirai 阅读(257) 评论(0) 推荐(0)
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1105 先排序,二分上下界分别是最小的两个数和最大的两个数的乘积。注意到一个性质,就是a[i]*b[j],i从左到右,j从右到左。假如遇到一组a[i]*b[j]<= 阅读全文
posted @ 2016-05-25 16:32 Kirai 阅读(411) 评论(0) 推荐(0)
摘要:比赛链接:http://www.51nod.com/contest/problemList.html#!contestId=21 1 /* 2 ━━━━━┒ギリギリ♂ eye! 3 ┓┏┓┏┓┃キリキリ♂ mind! 4 ┛┗┛┗┛┃\○/ 5 ┓┏┓┏┓┃ / 6 ┛┗┛┗┛┃ノ) 7 ┓┏┓┏┓ 阅读全文
posted @ 2016-05-25 15:19 Kirai 阅读(258) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给一张图,问最多往这张图上加多少条边,使这张图仍然无法成为一个强连通图。 起初是先分析样例可以知道,一个强连通分量里应当加边加至一个完全图,这样对整个图的连通贡献是没有的。然后把每个强连通分 阅读全文
posted @ 2016-05-24 14:55 Kirai 阅读(222) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 所有图论题都要往树上考虑 题意:给一张图,仅允许添加一条边,问能干掉的最多条桥有多少。 必须解决重边的问题,最后会说。 首先tarjan跑出所有的双连通分量和是桥的边还有桥的数量,这非常重要。接着 阅读全文
posted @ 2016-05-24 11:36 Kirai 阅读(187) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3177 和上一题一样,只是有重边。 如何解决重边的问题? 1、 构造图G时把重边也考虑进来,然后在划分边双连通分量时先把桥删去,再划分,其中桥的一端的割点归入当前正在划分的边双连通分量。这个处理比较麻烦; 2、 在输入图G的边时,若出现 阅读全文
posted @ 2016-05-23 16:10 Kirai 阅读(222) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3352 给一个图,问加多少条边可以干掉所有的桥。 先找环,然后缩点。标记对应环的度,接着找桥。写几个例子就能知道要添加的边数是桥的个数/2取上整。 这题和3177不一样的地方在于,这个题考虑重边,而我的代码本身,饿哦考虑重边的。 考虑重 阅读全文
posted @ 2016-05-23 11:13 Kirai 阅读(221) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3694 题意:给一张图,每次加一条边,问割边数量。 tarjan先找出所有割边,并且记录每个点的父亲和来自于哪一条边,然后询问的时候从两个点向上找lca,沿途更新割边数量和割边状态即可。 AC代码 第一次TLE了,因为窝把erase的复 阅读全文
posted @ 2016-05-23 07:27 Kirai 阅读(205) 评论(0) 推荐(0)
摘要:题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=737 求桥的数量,也就是割边的数量。输入有点小坑,左右括号外必须得有个空格才行,起初以为是转义的 阅读全文
posted @ 2016-05-22 00:08 Kirai 阅读(171) 评论(0) 推荐(0)
摘要:题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=251 求割点,除了输入用strtok和sscanf处理输入以外,对于求割点的tarjan算法有了 阅读全文
posted @ 2016-05-21 17:50 Kirai 阅读(181) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 这题以前做过…现在用tarjan搞一发…竟然比以前暴力过的慢………… 由于是离线算法,需要Query来保存查询数据,Ans来保存结果。最后输出的时候按照idx的顺序输出,所以胡搞了个排序。。 df 阅读全文
posted @ 2016-05-20 22:31 Kirai 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1330 题意就是求一组最近公共祖先,昨晚学了离线tarjan,今天来实现一下。 个人感觉tarjan算法是利用了dfs序和节点深度的关系,大致的意思:dfs如果不递归到递归基,那么dfs就会越递归越深,这个时候深度也是相应增加的,所以这 阅读全文
posted @ 2016-05-20 11:47 Kirai 阅读(208) 评论(0) 推荐(0)
摘要:题目链接:http://acm.uestc.edu.cn/#/problem/show/1059 普通线段树+离散化,关键是……离散化后建树和查询都要按照基本法!!!RE了不知道多少次………………我真是个沙茶…… 阅读全文
posted @ 2016-05-19 20:00 Kirai 阅读(150) 评论(0) 推荐(0)
摘要:AC++; 阅读全文
posted @ 2016-05-17 21:18 Kirai 阅读(123) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1236 这题本来是个强连通分量板子题的,然而弱很久不写tarjan所以生疏了一下,又看这数据范围觉得缩点这个事情可以用点到点之间的距离来判断不知道群巨兹磁不兹磁……下面弱就给大家搞一发如何用floyd和并查集来缩点……大致的思路就是先f 阅读全文
posted @ 2016-05-17 16:44 Kirai 阅读(217) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3974 出现在窝bin的线段树专题里…第一时间想的是记录入度找出根节点,然后标记深度转换到线段树中。但是发现并不会这个姿势…于是直接深搜更新了…发现没有退化成链的数据。于是水水地过去了……………… 阅读全文
posted @ 2016-05-16 14:27 Kirai 阅读(180) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 RT,该题要求每次更新是更新所有节点,分别求平方根,查询是求和。昨晚思前想后找有没有一个数学上的开平方的和等于和的开平方之类的规律。但是想了想发现这不就是小的时候,如果你这么想那老师就会骂死你的那 阅读全文
posted @ 2016-05-16 10:27 Kirai 阅读(168) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 陈题,更新后查询所有叶节点的和。撸一遍模版,形成自己的风格。 阅读全文
posted @ 2016-05-15 21:51 Kirai 阅读(208) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3264 写了一个更优美一点的 阅读全文
posted @ 2016-05-15 16:01 Kirai 阅读(154) 评论(0) 推荐(0)
摘要:听说是邀请赛啊,大概做了做…中午出去吃了个饭回来过掉的I。然后去做作业了…… 1 #include <algorithm> 2 #include <iostream> 3 #include <iomanip> 4 #include <cstring> 5 #include <climits> 6 # 阅读全文
posted @ 2016-05-15 15:20 Kirai 阅读(254) 评论(0) 推荐(0)
摘要:题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=1610 题意:给一个长8000的绳子,向上染色。一共有n段被染色,问染色后共有多少不同的色段。注意假如相邻两个线段同色,那么算作一条线段。 线段树区间更新,不需要push 阅读全文
posted @ 2016-05-14 10:54 Kirai 阅读(254) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 题意:w*h的公告板要贴公告,公告是w*1的,每个公告有先后顺序,要使每个公告贴的位置尽可能地高,问每个公告最高贴多高。不能贴就输出-1。特别“不”需要注意的是,题目给的n数据范围很大,但是n只有 阅读全文
posted @ 2016-05-13 21:09 Kirai 阅读(198) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4022 一个图上有n个点,之后m个操作,每次操作一行或者一列。使得这一行或者这一列的点全部消除。每次操作输出每次消除的点的个数。 思路: 因为数据范围很大,刚开始想的是离散化后维护各行各列的点数,但是发现 阅读全文
posted @ 2016-05-12 19:44 Kirai 阅读(272) 评论(0) 推荐(0)
摘要:写了5个小时,C++面向对象的东西都不会写了。。。以后要多写C++少写python。。。关于读入字符串处理的那部分写得太挫就不放了。 #include "List.hpp" 1 #pragma once 2 #include <cstdio> 3 #include <cassert> 4 5 nam 阅读全文
posted @ 2016-05-09 21:30 Kirai 阅读(778) 评论(0) 推荐(0)
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 存在参数a,b为负数的情况。这时候要这么处理: 根据mod值(7)加至刚好大于0。 否则有些样例是过不去的。 阅读全文
posted @ 2016-05-09 14:06 Kirai 阅读(1160) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2830 给一个矩阵只有0和1,矩阵的列可以和其他列交换无数次,问交换后整个矩阵形成的最大的全是1的子矩阵的面积。 思路:可以每次枚举当前行的每一列的连续为1的个数。然后从大到小排序,每次更新当前最大的面积 阅读全文
posted @ 2016-05-09 10:37 Kirai 阅读(255) 评论(0) 推荐(0)
摘要:签到检测程序,解析github提供的api内的json,解决了服务器和本地时间不同步的问题(时差+8H),实现按日期更新当前签到表。下一步是从api获取organization的信息,求出未签到的成员ID。(女朋友在写啦~) 阅读全文
posted @ 2016-05-07 20:08 Kirai 阅读(266) 评论(1) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1260 n个字符串,m次询问。每次询问给一个字符串,问这个字符串仅可以在一个地方加一个字母。这样操作后与n个字符串中有多少个字符串一样。 trie树维护n个字符串,然后从根节点向下dfs。 阅读全文
posted @ 2016-05-07 19:51 Kirai 阅读(146) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1300 给一个字符串,只包含'('和')',问存在多少个子串似的括号是匹配的。 匹配规则在题干中描(蒻)述(语)得(文)非常烂! 维护一个栈,栈中保存'('的下标。当遇到')'并且栈非空的时候,说明已经匹配到 阅读全文
posted @ 2016-05-07 00:20 Kirai 阅读(159) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1299 线段树,按照t为下标去更新v,更新的时候要保留最大的那个。 阅读全文
posted @ 2016-05-07 00:12 Kirai 阅读(181) 评论(0) 推荐(0)
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1087 用高中的数列知识就可以推出公式,不难发现f(n)=f(n-1)+n-1,f(1)=1。列出f(n)~f(2)的所有表达式,左右值分别求和就可以消去中间量,最 阅读全文
posted @ 2016-05-06 10:49 Kirai 阅读(284) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2002 给定一堆点,求这些点里哪些点可以构成正方形,题目给定n<=1000,直接枚举四个点是肯定会超时的,因此要做一些优化。 有公式,已知两个点在正方形对角,分别是(x1,y1)和(x2,y2),那么围成正方形后另外两个点(x3,y3) 阅读全文
posted @ 2016-05-05 22:30 Kirai 阅读(254) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015 这都能过…… 阅读全文
posted @ 2016-05-05 18:24 Kirai 阅读(190) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n, k,然后给出n*n的地图,(下标0~n-1),有一只老鼠从(0,0)处出发,只能走直线,并且目标点的数值比当前点要大。每次最长可以走k步,问最长的一条链的数值和。 用一个二维数组d 阅读全文
posted @ 2016-05-05 16:46 Kirai 阅读(175) 评论(0) 推荐(0)