自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lemondinosaur的博客

转圈圈 不停转圈圈 然后摔倒

  • 博客(26)
  • 收藏
  • 关注

原创 #二维树状数组#poj 2155 Matrix

题目在一个01矩阵内,选择某个子矩阵取反或输出某点的01值。分析可以用二维树状数组解决这个问题,void add(int x,int y,int z){ while (x<=n){ int y1=y; while (y1<=n){ c[x][y1]+=z; y1+=(y1&a...

2018-06-22 17:06:04 149

原创 #网络流,最小费用最大流,Edmons-Karp#codevs 1863 洛谷 2517 ssl 2401 订货

题目市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初库存为零,第n月月底也为零,每月月初订购,订购后产品立即到货,进库并供应市场,被售掉则不必付存贮费。假设仓库容量为S。求最低成本。分析最小费用最大流,过程很简单,建图。 That’s all.Edmons-Karp代码#incl...

2018-06-22 15:26:05 312

原创 #网络流,费用流#洛谷 3381 【模板】最小费用最大流

题目给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。分析 spfa然后修改每次的流量。代码#include <cstdio>#include <queue>using namespace std;struct node{int y,next,w,c;}e[10000...

2018-06-22 14:39:26 341

原创 #网络流,最大流,dinic#洛谷 2774 ssl 2609 方格取数游戏

题目在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大。分析匈牙利算法做二分图匹配,是OK的,但是网络流更高效,按奇偶性建图,再建立源点和汇点,分别连接,跑一遍最大流。代码#include <cstdio>#include <cctype>#include ...

2018-06-22 13:20:27 233

原创 #树状数组,二分#poj 2182 Lost Cows

题目排在奶牛前面的奶牛数量实际上比那头奶牛的品牌要小,求奶牛的排序。分析二分+树状数组,倒推,二分求出排列,用树状数组求品牌的数量。代码#include <cstdio>using namespace std;int n,a[8001],c[8001];void add(int x){while (x<=n) c[x]++,x+=(x&amp...

2018-06-22 10:51:12 227

原创 #网络流,最大流,dinic#洛谷 3355 骑士共存问题

题目在棋盘内放入尽量多的骑士,使他们(马步)互不攻击。分析匈牙利算法 但是这次要用网络流最大流,dinic。代码#include <cstdio>#include <cstring>#include <algorithm>#include <cctype>#include <queue>

2018-06-22 10:50:26 236

原创 #网络流,最大流,dinic#poj 3376 【模(mú)板】网络最大流

题目求有向无环图的最大流。分析dinic代码#include <bits/stdc++.h>using namespace std;struct node{int y,next,w;}e[200001];int k=1,ls[10001],n,dis[10001],s,t,m,x,y,w,ans;int in(){ int ans=0...

2018-06-22 08:22:05 330

原创 #树状数组#poj 2828 Buy Tickets

题目输入插队的人和插队的位置,求最终所有人的位置。分析树状数组,从后往前(倒推),然后就是要让在前面的次序-1。代码#include <cstdio>#include <cstring>using namespace std;int n,c[200001],a[200001],rec[200001];short b[200001];i...

2018-06-21 21:02:46 201

原创 #线段树,懒标记#poj 2777 Count Color

题目求区间内有多少种不同的颜色。分析线段树,做来做去发现还要用懒标记,标记是否为旧的涂色。代码#include <cstdio>#include <cctype>using namespace std;int w[400001],l,t,m,ans,now;bool blag[400001],flag[41];int in(){...

2018-06-21 20:33:31 215

原创 #网络流,最大流,dinic#洛谷 2055 假期的宿舍

题目已知共有 n 个人,并且知道其中每个人是不是本校学生,也知道每个本校学生是否回家。问是否存在一个方案使得所有不回家的本校学生和来看他们的其他人都有地方住。分析匈牙利算法?网络流!人与床匹配,当需要床的数量可实现,就^_^,否则T_T。关于建图,不想多说,当是学校学生的床与汇点连边,需要床的(在校不回家)人与原点连边,然后人与认识的人的床互相连边,然后dinic走起。...

2018-06-21 15:40:22 133

原创 #扩欧#洛谷 1516 poj 1061 青蛙的约会

题目规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。求它们跳了几次以后才会碰面。 分析简单的,得到x+mk≡y+nk(mod  l)x+mk≡y+nk(mod&nb...

2018-06-21 11:47:29 379 1

原创 #网络流,最大流,dinic#洛谷 2756 ssl 2601 飞行员配对问题

题目二分图匹配,输出方案。分析新的操(chao)作(zhuo)。 网络流,虽说匈牙利也可以用,但是要知道效率低。#include <cstdio>#include <queue>using namespace std;queue<int>q;struct node{int y,next,f;}e[10201];

2018-06-21 11:22:13 212

原创 poj 3401 String reduction

题目一串字符串只含a和b,像a∗aa∗aa*a或b∗bb∗bb*b,∗∗*指匹配的字符,可以缩成∗∗*,求缩减后字符串的长度。分析模拟,当两个字符间只间隔一个字符,判断字符串的长度的奇偶性即可。代码#include <cstdio>#include <cstring> using namespace std; char s[256...

2018-06-21 09:50:25 250

原创 #KMP#poj 2406 Power Strings

题目求字符串里有多少组循环节。分析kmp,算出循环节的长度,如果匹配不出循环节,只有1组,否则用字符串长度除以循环节长度。代码#include <cstdio>#include <cstring>using namespace std;char s[1000001]; int p[1000001],j;int main(){ ...

2018-06-21 09:37:03 124

原创 #KMP#poj 2752 Seek the Name, Seek the Fame

题目求长度多少的前缀与相同长度的后缀相等。分析kmp,字符串匹配,沿着p[j]跳回去。代码#include <cstdio>#include <cstring>using namespace std;char a[400001]; int p[400001];void dfs(int j){ if (j<0) ret...

2018-06-21 09:34:05 149

原创 #扩欧#poj 2142 The Balance

题目有两种砝码,重量分别为Amg,BmgAmg,BmgAmg,Bmg,然后要称量出Cmg的药品,两种砝码可以放无限个,但是不能放在天平的同一边,求两种砝码最少能放多少个(1.A+B最小,2.Ax+By最小)分析按照题目,可以得到 ax+c=by或by+c=ax 只要知道一种砝码的数量,那么另一种的砝码的数量迎刃而解。 所以想到了扩欧,然后最后两种方案要比较。代...

2018-06-21 08:58:57 174

原创 #扩欧#poj 2115 C Looooops

题目一个变量初始值为a,每次加c,取除以2k2k2^k的余数,使它与b相等。分析这道题可以变一下a+cx≡b(mod2k)a+cx≡b(mod2k)a+cx≡b(mod 2^k) 移项后变成cx≡b−a(mod2k)cx≡b−a(mod2k)cx≡b-a(mod 2^k) 没错,扩欧,具体解释懒得打。代码#include <cstdio>using...

2018-06-21 08:45:03 138

原创 #RMQ#poj 3264 Balanced Lineup

题目询问一个区间内最大值与最小值的差。分析RMQ f[i][j]=max(f[i][j−1],f[i+2j−1)][j−1])f[i][j]=max(f[i][j−1],f[i+2j−1)][j−1])f[i][j]=max(f[i][j-1],f[i+2^{j-1})][j-1])代码#include <cstdio>#include <cc...

2018-06-20 20:55:56 205

原创 #单调队列#ssl 2521 数数

分析(n3n3n^3)——暴力、(n2n2n^2)——前缀和都会超时,所以想到了单调队列,维护单调递增,固定右端点,然后左端点往后推,轻松O(n)。代码#include <cstdio>#include <cctype>using namespace std;int n,m; long long ans,q[100001],s[100001];.

2018-06-20 20:51:04 117

原创 ssl 2520 小球

分析二重循环会TLE,所以就要思考如何优化。(研究了很久) 当i<ji<jii=ji=ji=j不可能,i>ji>ji>j会重复)且颜色不同 那么ans+=j−ians+=j−ians+=j-i 一重循环时j的增加数量取决于i的个数,而i前缀和就好了。 用两个数组a和b,a[j]表示Ci为j时的下标和,b[j]表示Ci为j时的个数。然后水水地到了第一。...

2018-06-20 20:37:47 88

原创 #整除分块#洛谷 2424 约数和

题目设f(x)f(x)f(x)表示为x的约数和,求f(x)+……+f(y)f(x)+……+f(y)f(x)+……+f(y)分析首先要思考如何表示答案.f(x)f(x)f(x)表示为∑d|xd∑d|xd\sum_{d|x}d那么答案为∑yi=x∑d|xd∑i=xy∑d|xd\sum^y_{i=x}\sum_{d|x}d但是时间复杂度是O(∑yi=xi√)O...

2018-06-20 20:24:16 160

原创 #埃氏筛#ssl 2522 约数或 ssl 1003 约数研究

题目求2至n的第二小约数和。分析这道题可以用eratosthenes筛法(线性筛内存大),然后质数的第二小约数就是本身,合数筛掉时判断是不是第一次被筛就可以了。代码#include <cstdio>using namespace std;bool v[10000001]; int n; long long ans;int main(){ ...

2018-06-20 19:13:36 213

原创 #kruskal,树上倍增,lca#ssl 2267 洛谷 1967 货车运输

题目每条道路都有限重,一些货车从某个城市到达另一个城市,求最多可载多少的货物。分析咋一看,貌似有点难,后来发现不就kruskal(改成最大生成树)吗,然后怎样求两点间的最大载重就用树上倍增。代码#include <cstdio>#include <queue>#include <cctype>#

2018-06-19 21:33:30 194

原创 #LCA,Tarjan#POJ 1330 Nearest Common Ancestors

题目求两点的最近公共祖先分析由于询问次数少,于是就只打Tarjan(不是求强联通分量的)懒代码#include <cstdio>using namespace std;struct node{short y,next;}e[20001]; int t;short n,ok,q,p,m,x,y,ls[10001],in[10001],v[10...

2018-06-18 15:24:34 116

原创 #树上倍增,LCA#SSL 1746 商务旅行

题目求任意两点的距离分析求最近公共祖先后,就可以用d[x]+d[y]-d[lca]*2求出两点间距离了。对于大数据,用树上倍增是最好的,关键是怎么用树上倍增,设f[i][j]表示i向上跳2j2j2^j步的节点,d表示深度,dfs后树上倍增求LCA。代码#include <cstdio>#include <cctype>#define ...

2018-06-12 17:25:33 147

原创 2018_5_19 模拟赛

前言 超级迟到的博客SSL NO.1 面积题目求a和b的值,使阴影部分面积最大。分析首先看到这个三角形 一看就是直角三角形,短直角边为a/2,斜边为r,那么长直角边可以用勾股定理算出来,乘2后得到长方形的长,算出两个长方形再减去中间的部分求a,b最大值,所以枚举a,b 1至2*r-1即可。#include <cstdio>#inc...

2018-06-03 11:21:30 193

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除