08 2019 档案
摘要:B - Mister B and Angle in Polygon CodeForces - 820B 计算几何 题意 输入n个点,创建一个正n边形,把每个点之间都连起来(如下图举例所示),求出最接近所给∠a的角的角的三个顶点a,b,c,其中b为顶点。 题解 C - Mister B and PR
阅读全文
摘要:2-sat一个变量两种状态符合条件的状态建边找强连通,两两成立1 - n 为第一状态(n + 1) - (n + n) 为第二状态 例题模板 链接一 POJ 3207 Ikki's Story IV - Panda's Trick(2-sat) 链接二 Katu Puzzle POJ - 3678
阅读全文
摘要:有N个变量X1X1~XNXN,每个变量的可能取值为0或1。 给定M个算式,每个算式形如 XaopXb=cXaopXb=c,其中 a,b 是变量编号,c 是数字0或1,op 是 and,or,xor 三个位运算之一。 求是否存在对每个变量的合法赋值,使所有算式都成立。 输入格式 第一行包含两个整数N和
阅读全文
摘要:题意 有一个 n*n 的图,. 代表空白区域,X 代表墙,现在要在空白区域放置结点,要求同一行同一列只能放一个,除非有墙阻隔,问最多能放多少个点 思路 只有在墙的阻隔情况下,才会出现一行/列出现多个点的情况,那么可以考虑进行缩点,将同一行且没有墙体阻隔的区域缩成一个点,放到左点集中,将同一列且没有墙
阅读全文
摘要:题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 分析 经典的矩阵二分图构图和最小点覆盖。无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一个横向编号和纵向编
阅读全文
摘要:3424:Candies(差分约束,Dijkstra)(配对堆优化 卡常数优化
阅读全文
摘要:【BZOJ-4289】Tax 最短路 + 技巧建图(化边为点) 786B - Legacy(线段树 + 最短路)线段树优化建图 poj2226-Muddy Fields二分匹配 最小顶点覆盖 好题 Fire Net(HDU-1045)(匈牙利最大匹配)(建图方式)
阅读全文
摘要:【双连通分量】 一、边双连通分量定义 在分量内的任意两个点总可以找到两条边不相同的路径互相到达。总而言之就是一个圈,正着走反着走都可以相互到达,至少只有一个点。 二、点双连通分量的定义 参照上面,唯一的不同:任意两个点可以找到一个点不同的路径互相到达。也是一个圈,正反走都可以,至少为一个点。 三、边
阅读全文
摘要:概念: 双连通分量有点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图。 一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量。求双连通分量可用Tarjan算法。--百度百科 Tip:先学
阅读全文
摘要:// Tarjan算法求有向图强连通分量并缩点 #include #include #include #include #include #include using namespace std; const int N = 100010, M = 1000010; // int ver[M], Next[M], head[N], dfn[N], low[N]; int stack[N], ...
阅读全文
摘要:// tarjan算法求无向图的桥、边双连通分量并缩点 #include #include #include #include #include using namespace std; const int SIZE = 100010; int head[SIZE], ver[SIZE * 2], Next[SIZE * 2]; int dfn[SIZE], low[SIZE], c[SIZ...
阅读全文
摘要:POJ 3207 C++代码一 C++代码二 点击
阅读全文
摘要:由对称性解2-SAT问题 (by 伍昱,03年IOI国家集训队论文ppt) 2-SAT: 2-SAT就是2判定性问题,是一种特殊的逻辑判定问题。 2-SAT问题有何特殊性?该如何求解? 我们从一道例题来认识2-SAT问题,并提出对一类2-SAT问题通用的解法。 Poi 0106 Peaceful C
阅读全文
摘要:解题报告 题意理解 给定一张N个点,M个边的无向图,求出无向图的一颗最小生成树,但是我们要求一号节点的入度不可以超过给定的整数S 也就是一个最小生成树,要求它的一号节点,最多只能和S个节点相连. 思路确定 题意就已经告诉我们,我们的必备算法必然是最小生成树.但是具体的算法流程,我们还得思考一下. 首
阅读全文
摘要:题意 首先判断所有的人可不可以分成两部分,每部分内的所有人都相互不认识。如果可以分成 则求两部分最多相互认识的对数。 解题 类似分成两组,同组互不相关,就可能使判断是否为二分图 能否分成两部分 则是判断是否是一个二分图。无向图G为二分图的充分必要条件是:G至少有两个顶点,且当存在回路时,其所有回路的
阅读全文
摘要:题意: 给出一张图,图中'X'表示wall,'.'表示空地,可以放置blockhouse同一条直线上只能有一个blockhouse,除非有wall 隔开,问在给出的图中最多能放置多少个blockhous 分析: 把原始图分别按行和列缩点 建图:横竖分区。先看每一列,同一列相连的空地同时看成一个点,显
阅读全文
摘要:优先队列 + 反向拓扑
阅读全文
摘要:POJ 3249 Test for Job (拓扑排序+DP) <题目链接> 题目大意: 给定一个有向图(图不一定连通),每个点都有点权(可能为负),让你求出从源点走向汇点的路径上的最大点权和。 解题分析:想到拓扑排序就好做了,然后在拓扑的过程中进行简单的状态转移。 <题目链接> 题目大意: 给定一
阅读全文
摘要:题目链接 : 点击此处 ## Problem A 题意: 给你n个数,重定义两个数之间的加法不进位,求这些数中两个数相加的最大值和最小值。 题解: 字典树。我们首先将前i-1为放入字典树中,然后在查询第i位时,我们去字典树中查询,对每一位进行寻找,找到满足题意的当前位的最大值和最小值,然后继续更新下
阅读全文
摘要:<题目链接> 题目大意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则:投票具有传递性,A支持B,B支持C,那么C获得2票(A.B共两票),输出最多能获得的票数是多少张和获得最多票数的人是谁?(如果有多个人获得的票数都是最多的,就将他们全部输出)
阅读全文
摘要:一个公园中有 n 个景点,景点之间通过无向的道路来连接(明显的点双 ),如果至少两个环公用一条路,路上的游客就会发生冲突;如果一条路不属于任何的环,这条路就没必要修 问,有多少路不必修,有多少路会发生冲突 每一个连通块中,如果边数大于点数,这个块中所有的边全部是冲突边。 所有桥为不需要修建的路。 点
阅读全文
摘要:题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。 先用tarjan求出每个强连通分量,再缩点
阅读全文
摘要:题目: 曹操在长江上建立了一些点,点之间有一些边连着。如果这些点构成的无向图变成了连通图,那么曹操就无敌了。刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥。但是诸葛亮把所有炸弹都带走了,只留下一枚给刘备。所以刘备只能炸一条桥。 题目给出n,m。表示有n个点,m条桥。 接下来的m行每行给出a,
阅读全文
摘要:回文树例题看这 : 点击 简介 我们知道,Manacher算法可以在[Math Processing Error]O(n)的时间内求出以每个位置为中心的最长回文串(虽然我昨天还不知道Manacher算法是怎么做的)。但是如果要统计回文串的个数,Manacher就捉襟见肘了。于是,回文自动机闪亮登场!
阅读全文
摘要:回文树介绍看这 : 点击 回文树 首先,回文树有何功能?假设我们有一个串S,S下标从0开始,则回文树能做到如下几点: 1.求串S前缀0~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同)2.求串S内每一个本质不同回文串出现的次数3.求串S内回文串的个数(其实就是1
阅读全文
摘要:题目链接 : https://www.acwing.com/problem/content/description/142/ Hash + 二分 后缀数组
阅读全文
摘要:题目链接 : https://www.acwing.com/problem/content/141/ 前缀和+后缀和+二分+Hash(哈希) O(nlogn)O(nlogn)我们发现0这道题目数据范围极其恐怖,那么只有一个办法可以让我们求解这道题目,那就是哈希,或者是O(n)O(n)复杂度的Mana
阅读全文
摘要:模式串为子串 KMP
阅读全文
摘要:左偏树 炒鸡棒的论文《左偏树的特点及其应用》 虽然题目要求比论文多了一个条件,但是……只需要求非递减就可以AC……数据好弱…… 虽然还没想明白为什么,但是应该觉得应该是这样——求非递减用大顶堆,非递增小顶堆…… 这题和bzoj1367题意差不多,但是那题求的是严格递增。(bzoj找不到那道题,可能是
阅读全文
摘要:## Problem A A - Memory and Crow CodeForces - 712A 题意: 分析可得bi=ai+ai+1 题解: 分析可得bi=ai+ai+1 C++版本一 #include<bits/stdc++.h> using namespace std; const int
阅读全文
摘要:## Problem A A - Meeting of Old Friends CodeForces - 714A 题意: 解题说明:此题其实是求两段区间的交集,注意要去除掉交集中的某个点。 题解: C++版本一 #include<cstdio> #include<iostream> #includ
阅读全文
摘要:## Problem A 题意: 题解: C++版本一 ## Problem B 题意: 题解: C++版本一 ## Problem C 题意: 题解: C++版本一 ## Problem D 题意: 题解: C++版本一 ## Problem E 题意: 题解: C++版本一 ## Problem
阅读全文
摘要:A - Settlers' Training CodeForces - 63B 题意 给你一串数字,相同的数字为一组,每次可以给一组中的一个数字加一,问这一串数字全变成K需要多少步? 题解 模拟 C++代码 /** /*@author Victor /*language C++ */ //#incl
阅读全文