随笔分类 - A:模板
整理的一些可以直接套用的模板
    
摘要:2-sat一个变量两种状态符合条件的状态建边找强连通,两两成立1 - n 为第一状态(n + 1) - (n + n) 为第二状态 例题模板 链接一 POJ 3207 Ikki's Story IV - Panda's Trick(2-sat) 链接二 Katu Puzzle POJ - 3678 
        阅读全文
                
摘要:题意 有一个 n*n 的图,. 代表空白区域,X 代表墙,现在要在空白区域放置结点,要求同一行同一列只能放一个,除非有墙阻隔,问最多能放多少个点 思路 只有在墙的阻隔情况下,才会出现一行/列出现多个点的情况,那么可以考虑进行缩点,将同一行且没有墙体阻隔的区域缩成一个点,放到左点集中,将同一列且没有墙
        阅读全文
                
摘要:题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 分析 经典的矩阵二分图构图和最小点覆盖。无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一个横向编号和纵向编
        阅读全文
                
摘要:// 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++代码二 点击
        阅读全文
                
摘要:一个公园中有 n 个景点,景点之间通过无向的道路来连接(明显的点双 ),如果至少两个环公用一条路,路上的游客就会发生冲突;如果一条路不属于任何的环,这条路就没必要修 问,有多少路不必修,有多少路会发生冲突 每一个连通块中,如果边数大于点数,这个块中所有的边全部是冲突边。 所有桥为不需要修建的路。 点
        阅读全文
                
摘要:题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头 牛被所有的牛认为是受欢迎的。 先用tarjan求出每个强连通分量,再缩点
        阅读全文
                
摘要:题目: 曹操在长江上建立了一些点,点之间有一些边连着。如果这些点构成的无向图变成了连通图,那么曹操就无敌了。刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥。但是诸葛亮把所有炸弹都带走了,只留下一枚给刘备。所以刘备只能炸一条桥。 题目给出n,m。表示有n个点,m条桥。 接下来的m行每行给出a,
        阅读全文
                
摘要:## Problem A 题意: 题解: C++版本一 ## Problem B 题意: 题解: C++版本一 ## Problem C 题意: 题解: C++版本一 ## Problem D 题意: 题解: C++版本一 ## Problem E 题意: 题解: C++版本一 ## Problem
        阅读全文
                
摘要:题意:删去m个数,使剩下的数组成的数最小 题解 :贪心 , RMQ RMQ解法,建st表找,用rmq找最小值的下标,注意点 ,因为最小值是区间最右最小值,所以应该改成 <= 而不是< 且rmq查询也要同步 #include<iostream> #include<cstdio> #include<st
        阅读全文
                
摘要:Cornfields Time Limit: 1000MS Memory Limit: 30000K Total Submissions:8623 Accepted: 4100 Description FJ has decided to grow his own corn hybrid in ord
        阅读全文
                
摘要:近期学了一些新算法,并查集,最短路,线段树,树状数组,最小生成树,KMP,简单DP。 暂时就对以上这些算法进行总结与复习。 一、并查集 并查集是最简单的一种算法。 主要用于合并,查找。 基本代码 How Many Tables 最短路Dijkstra dj是来记录从s出发到每一点的最短路 spfa判
        阅读全文
                
摘要:#include using namespace std; int pre[1010]; bool t[1010];//t 用于标记独立块的根结点 int find(int x)//查找根节点 { int r=x; while(pre[r]!=r) r=pre[r];//返回根节点 r int i=x,j; while(pre[i...
        阅读全文
                
摘要:void Add(int u,double cost,int v)//邻接表存储关系 { w[top] = cost; Key[top] = v; next[top] = head[u]; head[u] = top++; } bool SPFA(int x) { memset(vis,false,
        阅读全文
                
摘要:#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; const int N=210; int n,m,s,t; int map[N][N],dis[N
        阅读全文
                
摘要:#include<stdio.h> #include<iostream> #include<queue> using namespace std; #define N 205 #define INF 99999999 int n,m,map[N][N]; int visited[N],dis[N];
        阅读全文
                

浙公网安备 33010602011771号