- 博客(11)
- 收藏
- 关注
原创 zoj 3946 Highway Project(最短路径)
题目链接 题意:最短路径,每个边上有2个权值,第二个权值是不能累加的#include<bits/stdc++.h>using namespace std;#define LL long long #define cl(a,b) memset(a,b,sizeof(a)) #define pb push_back #define gcd __gcdconst int maxn = 100005; c
2016-04-25 13:32:25 709
原创 HDU5584 LCM Walk(数学)
题目链接 对于给出的点(x,y) 假设gcd(x,y)=g; 那么x = pg,y = qg(p与q肯定是互质的)他们的LCM=pqg, 这样(x,y)就可以表示为(pg,qg),比如向上走一步 的话,就是(pg+pqg,qg)—>(pg(1+q),qg)—>约掉g—>(p(1+q), q)也就是坐标的大的一个是可以整除坐标小的一个加一的。满足这个条件就是存在前驱节点 #include<bits
2016-04-15 16:30:24 405
原创 HDU5583 Kingdom of Black and White(连通块暴力)
题目链接 每次最多修改一个点。 按照连通区域进行计数,每次修改就是区域的端点 #include<bits/stdc++.h> using namespace std; #define LL long long #define cl(a,b) memset(a,b,sizeof(a)) #define pb push_backconst int maxn = 100005; const int i
2016-04-15 13:26:26 453
原创 CDOJ1259 昊昊爱运动 II (线段树+bitset)
题目链接 使用bitset保存每一段区间的不同的数的数量,线段树节点,存bitset,bitset可以使用二进制位运算 #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<iostream> #include<bitset> using namespace
2016-04-15 11:28:09 521
原创 FZU 2093 寻找兔子 (状态压缩dp)
题目链接 对于每一个点,至多有一个没有确定的点,可以确定兔子的位置。#include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<queue> #include<iostream> using namespace std; #define LL __int64 #d
2016-04-14 18:31:14 336
原创 FZU 2092 收集水晶 (记忆化搜索)
题目链接 记录下dfs的参数状态,dfs表示在t时刻,一个在x1,y1,一个在x2,y2可以收集的最大的水晶数量#include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<queue> #include<iostream> using namespace std;
2016-04-14 18:26:53 354
原创 2090 旅行社的烦恼 (floyd 应用)
题目链接 floyd算法可以算出任意2个点之间的距离,对于#include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<queue> #include<iostream> using namespace std; #define LL __int64 #define
2016-04-14 18:23:54 704
原创 FZU 2087 统计树边 (最小生成树变形)
题目链接 边可以分为2类,一类是可以构成MST,另一类是不可以的,用并查集做的时候,检查权重相同的边,但是2个端点不在同一个集合的时候,这个边就是可以选择的#include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<iostream> using namespac
2016-04-14 18:19:13 292
原创 zoj3772 Calculate the Function(矩阵+线段树)
题目链接 题意 :给出一个函数 在区间[L,R] F(x) = a[x]; F(x+1) = a[x+1] F(k) = F(k-1)+F(k-2)*a[k] {x+2<=k<=R} 解法:转换为矩阵 1 a[k] f(x-1) a 0 乘以 f(x-2) #include<bits/stdc++.h> using namespace st
2016-04-13 16:29:33 385
原创 CF A. Greg and Array (区间离线处理)
题目连接 题意:给你n,m,k;给你n个数,m个形如l,r,d的操作,表示在[l,r]是每一个元素增加d。k个形如x,y,表示执行上面的x到y的操作,问最后数组的样子。 解法:参考qsc,区间的离线处理。用数组t表示每次操作从当前位置到最右边的次数,然后就好办了#include<bits/stdc++.h> using namespace std; #define LL long long #d
2016-04-08 16:48:39 595
原创 HDU 5656 CA Loves GCD (dp)
题目链接 题意:给你n个数,至少选择一个,然后选择的数的gcd和是多少,两个选择不同,当且仅当有一个数的位置是不同的 dp[i][j]:表示前i个数选择出来gcd是j的种类数,gcd要提前算好,否者TLE#include<bits/stdc++.h> using namespace std; #define LL long long #define cl(a,b) memset(a,b,size
2016-04-07 14:25:29 283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人