摘要: 斜率优化dp。 #include #include #include using namespace std; const int maxn = 50000 + 10; struct Field { long long x,y; } t[maxn]; long long f[maxn],x[maxn],y[maxn]; int q[maxn],l,r; int ... 阅读全文
posted @ 2016-05-15 17:41 invoid 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 数位dp。 #include #include #include using namespace std; long long pow[15],f[15][10][10],resa[10],resb[10]; long long a,b; void add(long long a[],long long b[]) { for(int i=0;in) len--; for... 阅读全文
posted @ 2016-05-15 15:43 invoid 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 匈牙利匹配。 在邻接表中每条边以终点升序排序。从x最后一个点往前进行增广,这样每个点首先都能匹配到字典序最小的位置,如果前面的点找不到匹配点时,后面的点就匹配到稍大一点的y匹配点上。 建图说明:每个点有且只会有俩个点符合距离的要求,可以想想为什么。 y点要+n与x点区分开来。 #include #include #include #include using namespace st... 阅读全文
posted @ 2016-05-15 09:47 invoid 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 二分水题。为什么要写这道题呢,因为要辨明long long的读入与输出。 经过俩天的调试(我还以为我代码写错了)。。。 发现codeVS,tyvj输入输出用lld,vijos用I64d 这篇题解除了我应该也不会有人看见。。所以肯定还会有大量人入坑。 呜呼哀哉。 #include #include #include #include #include using namespa... 阅读全文
posted @ 2016-05-12 19:18 invoid 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 枚举。 为什么要写这道题的题解呢,因为这道题有小技巧。 1.首先由题意知b1%x==0,这个条件如何用呢,就是x从1到sqrt(b1)枚举,其他符合条件的数肯定是b1/x中的一部分。 2.枚举条件不要直接写sqrt(b1)否则每回都会计算一遍,会tle。应该用i^2 #include #include using namespace std; inline int gcd(int a,in... 阅读全文
posted @ 2016-05-12 13:30 invoid 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 斜率优化dp。 #include #include #include using namespace std; const int maxn = 50000 + 10; int n; long long L; int c[maxn],q[maxn]; long long s[maxn],f[maxn]; double slop(int j,int k) { return (f[... 阅读全文
posted @ 2016-05-11 17:55 invoid 阅读(243) 评论(0) 推荐(0) 编辑
摘要: dfs序。 用l[u]和r[u]表示进入u和出去u的时间。用树状数组维护前缀和,l[u]处加1,r[u]处减1。 询问的是树根到自己u的距离,就相当于l[u]处的前缀和。为什么呢? 如果一个节点v在树根到u的路径上,就会在l[v]处加1。如果不在,如果编号小于u,l[v]和r[v]处相消。 如果大于u则l[v]大于l[u]。W u操作则是将l[u]处减1,将r[u]处加1。这样u就不会影响... 阅读全文
posted @ 2016-05-10 17:56 invoid 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 状态空间搜索?用map判重。 #include #include #include #include #include using namespace std; int dx[]={1,0,-1,0},dy[]={0,1,0,-1}; struct Status { int a[4][4]; Status move(int x,int y,int dir) {... 阅读全文
posted @ 2016-05-10 17:20 invoid 阅读(170) 评论(0) 推荐(0) 编辑
摘要: %%%。设f(x)=a0+a1x+a2x^2+ … + anx^n.求f(x)=0的x。 数据范围很大,高精度只能骗分。 运用类似hash的思想。 如果这个等式mod p 还成立(p为质数)那它很可能就是成立。 多取几个质数(大质数更优)就可以几乎确定了。(70分) 100分时m很大,不能都算出来。 仔细分析,如果在模p时f(x)!=0,则f(x+p)肯定也不是解。这样一来只需枚举从1到... 阅读全文
posted @ 2016-05-10 15:32 invoid 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 方向dfs判定是否可行,spfa跑最短路。 noip水题,wa好几次。 #include #include #include using namespace std; const int maxn = 10000 + 10; const int maxm = 200000 + 10; int g[maxn],v[maxm],next[maxm],eid; int g1[maxn]... 阅读全文
posted @ 2016-05-10 08:24 invoid 阅读(158) 评论(0) 推荐(0) 编辑