14
2017-08
2017-08
ACdream 1157 Segments (CDQ分治)
将修改操作和查询操作分开来,每次都用左区间的修改操作更新右区间的查询操作,因为左区间的修改操作对左区间的查询操作在递归左区间时就已经处理了,同理查询操作也是一样。
写的太暴力,还能过程能优化很多
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
templ...
08月14日
3,379
14
2017-08
2017-08
UVALive 5871 Arnooks’s Defensive Line (CDQ分治)
在我们平常使用的分治中,每一个子问题只解决它本身(可以说是封闭的)。
而在cdq分治中,对于划分出来的两个子问题,前一个子问题用来解决后一个子问题而不是它本身。
具体算法流程如下:
1.将整个操作序列分为两个长度相等的部分(分)
2.递归处理前一部分的子问题(治1)
3.计算前一部分的子问题中的修改操作对后一部分子问题的影响(治2)
4.递归处理后一部分子问...
08月14日
3,424
08
2017-08
2017-08
UVALive 7648 Passwords (AC自动机 + DP)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
template <class T> inline bool scan_d(T &ret) {char c; int sgn;if(c=getchar(),c==EOF...
08月08日
3,388
08
2017-08
2017-08
UVALive 7649 Performance Review (树状数组)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
template <class T> inline bool scan_d(T &ret) {char c; int sgn;if(c=getchar(),c==EOF...
08月08日
2,834
23
2017-07
2017-07
UVALive 4957 Fake scoreboard (最大流)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PI;
const int INF = 0x3f3f3f3f;
const int MAXN = 1500;
const...
07月23日
4,354
17
2017-07
2017-07
UVALive 4817 Calculator (表达式计算)
题意:~
思路:大数中缀表达式计算。。
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.u...
07月17日
3,087
16
2017-07
2017-07
UVALive 7429 Guessing Camels (求逆序数对)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PI;
#define lson l, m, rt<<1
#define rson m+1, r, rt<...
07月16日
3,005
16
2017-07
2017-07
UVALive 7427 Elementary Math (二分匹配)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PI;
const int MAXN = 10010;
const int MAXM = 10010;
struct...
07月16日
3,433
16
2017-07
2017-07
UVALive 7425 Cleaning Pipes (2-sat)
题意:~
思路:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PI;
const int MAXN = 10020;
const int MAXM = 5000010;
stru...
07月16日
4,339
07
2017-07
2017-07
Floyd求最小环
算法引入:
*求一个图G中的最小环路的朴素算法为:每次找到一条边,删除了求这两点之间的最短路径;
*若能求出,则这条最短路径与原来的边构成一个环,不过时间复杂度略高;
*算法思想;
*Floyd算法是按照顶点的编号增加的顺序更新最短路径的;
*如果存在最小环,则会在这个环中的点编号最大的那个点u更新最短路径之前发现这个环;
*即当点u被拿来更新i到j的最短路...
07月07日
3,564