为了效率搞了这么一个库:

现在版本号1.14(一月十四日更新版本囧..)

http://pan.baidu.com/s/1c0SoGfu [source]

http://pan.baidu.com/s/1c0UqCXq [precompiled]

版权之类就随他去吧..WTFPL..

用法:释放在include文件目录里就可以使用#include <poi.h>啦..!(当然对于lemon、cena之类也适用)

或者如果不要求评测..可以用#include "poi.h"

因为现在做了前几题渐渐POI库大了起来...应该不久就会比较完善啦..

效率

实战证明了它的效率(大雾

由于沙茶zball只会卡常数,那么这个库的效率可以参考这张图:

大囧..

POI2007 atr

一句话题意

一张无向图,从第1个点出发到第n个点,其中第2到k+1个点必须经过而且要满足一些形如a要在b之前访问过的条件,求最短路.

题解

最短路+状压DP.

代码

#define frenable
#include <poi.h>
using namespace POI; #define maxn 20010
#define maxm 400010
int n,m;
graphw<maxn,maxm> gr; #define maxk 22
int k;
int dis[maxk][maxn]; inline void read_graph(){
rdu(n),rdu(m),rdu(k);
int a,b,c;
fet(i,1,m){
rdu(a),rdu(b),rdu(c);
gr.addedge(a,b,c);
gr.addedge(b,a,c);
}
} inline void disgen(){
fet(i,1,k+1) gr.dijkstra(i,dis[i]);
#ifdef debug
fet(i,1,k+1){
fet(j,1,n){
pru(dis[i][j]);putc(' ');
}
putc('\n');
}
#endif
} int relation[maxk],relat;
inline void read_relation(){
rdu(relat);
int u,v;
fet(i,1,relat){
rdu(u),rdu(v);
relation[v]|=1<<(u-2);
}
} int f[1<<20][maxk],vx;
inline void dp(){
fet(now,0,vx)
fet(x,1,k+1)
if(~f[now][x])
fet(i,2,k+1){
int toState=now|(1<<i-2);
int dist=f[now][x]+dis[x][i];
if((now & relation[i])==relation[i])
if(f[toState][i]==-1 || f[toState][i]>dist) f[toState][i]=dist;
}
} int main(){
read_graph();
disgen();
read_relation(); memset(f,-1,sizeof(f));
f[0][1]=0;
vx=(1<<k)-1;
dp(); int ans=0x3f3f3f3f;
fet(i,1,k+1) if(~f[vx][i]) tensen(ans,f[vx][i]+dis[i][n]);
printf("%d\n",ans);
return 0;
}

提醒:这个代码在我的电脑上是可以过的,在lydsy上是过不了的..原因很显然..

POI2007 biu

一句话题意

给出一张图,求它补图的连通块个数.

题解

(因为现在还在做Stage I所以都比较简单吧)

维护一个"当前访问不到"链表,在补图中访问到某个点就删去,然后BFS.

代码

#define frenable
#include <POI.h>
using namespace POI;
#define maxn 100010
#define maxm 4000010
graph<maxn,maxm> gr;
int n,m,k;
int grk[maxn],grl;
#define ll llp
struct llx{
int lab,l,r;
} ll[maxn];
inline void del(int x){
ll[ll[x].l].r=ll[x].r;
ll[ll[x].r].l=ll[x].l;
}
inline int bfs(int f){
static int queue[maxn],h,t;
h=t=0;
queue[t++]=f;
del(f);
while(h-t){
int v=queue[h++];
for(edge*i=gr.h[v];i;i=i->nxt){
ll[i->to].lab=1;
}
for(int i=ll[0].r;i<=n;i=ll[i].r){
if(ll[i].lab) ll[i].lab=0;
else{
del(i);
queue[t++]=i;
}
}
}
return t;
}
int main(){
rdu(n),rdu(m);
int a,b;
fet(i,1,m) rdu(a),rdu(b),gr.addedge(a,b),gr.addedge(b,a);
fet(i,1,n){
ll[i].l=i-1;
ll[i].r=i+1;
}
for(int i=1;i<=n;i=ll[0].r) grk[grl++]=bfs(i);
std::sort(grk,grk+grl);
pru(grl); putc('\n');
fet(i,0,grl-1) pru(grk[i]),putc(' ');
putc('\n',1);
return 0;
}

POI2007 osi

一句话题意

给你一个多边形,判断它有几条对称轴.

题解

我感觉这个转化思路还是比较有意思的. 将多边形砍断,拉成边和角交互的数组,那么两个一样的数组对应的多边形是相同的,将它的循环串求回文子串,若长度大于n就有一条对称轴了.

将多边形砍断这一部分我觉得挺有用的,就放在POI库里了.

代码

#define frenable
#include <poi.h>
using namespace POI;
polygon<ll,200010> pt;
ll sym[800010],sym2[1600010];
int dist3[1600010];
int main(){
int n,t,ocr,m;
rdu(t);
while(t--){
pt.clear();
rdu(n);
fet(i,1,n) rdi(ocr),rdi(m),pt.push_point(point<ll>(ll(ocr),ll(m)));
ocr=pt.flatten_symmetric(sym);
ocr=Manacher_init(sym,sym2,maxll,-maxll-1,ocr);
Manacher(sym2,dist3,ocr);
int ans=0;
fot(i,0,ocr) if(dist3[i]>2*n-1) ++ans;
printf("%d\n",ans/2);
}
return 0;
}

开始做POI啦...的更多相关文章

  1. 从POI到O2O 看百度地图如何走出未来之路

    近期O2O的烧钱融资大战如火如荼,有人已经把O2O大战,用乌合之众的群体心理失控来形容.其实厂商都不傻,O2O烧钱大家都知道,但是大家还知道O2O背后这块大蛋糕价值"万亿级". 有 ...

  2. poi自动生成Ecxel表格和Chart图表

    最近因为业务需求,需要做poi自动导出Ecxel表格和Chart折线图的功能. 所以我在网上找到了一篇关于poi生成Chart图表的博客,代码很详细,但是缺少相关注释说明. 想要将它改造成自己需要的样 ...

  3. SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性

    SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客户端.产品基于统一的架构体系,面向Web端和移动端提供了多种类型的SDK开发包,帮助 ...

  4. BZOJ 1116: [POI2008]CLO

    1116: [POI2008]CLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 922  Solved: 514[Submit][Status][ ...

  5. Can't obtain the input stream from /docProps/app.xml

    今天在做poi修改样式时,报了以下错误: Exception in thread "main" org.apache.poi.POIXMLException: java.io.IO ...

  6. jsoi2015 R2——滚粗记

    考完感觉各种绝望溢出胸口,作为百度空间的最后一篇文章了吧 day 0 第二轮在南师附中……不能到外地玩了…… 其实在试机的时候就感觉不大对头,明明说好18:15试机结果拖到18:30…… 还有今年竟然 ...

  7. BZOJ1116: [POI2008]CLO

    1116: [POI2008]CLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 565  Solved: 303[Submit][Status] ...

  8. SuperMap iClient

    SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性   SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客 ...

  9. 日志 --BUG记录

    2014-12-15日 在做520wawa的免费推广   部署web应用时 错把path设置为"/*",导致启动tomcat时,导致错误 <Context path=&quo ...

随机推荐

  1. cx_freeze 把 .py 打包成 .exe

    1.安装 python-3.4.3 默认安装路径 C:\Python34 2.安装 cx_Freeze-4.3.3.win32-py3.4 3.运行 Python Version 3.4 regist ...

  2. DX9资源管理

    http://www.cnblogs.com/cxrs/archive/2013/04/03/D3DResourceManager.html http://kasicass.blog.163.com/ ...

  3. IPcamera

    1.IPcamera 一般架构 IPcamera产品其实是一个小型的对外直播系统,一般通过rtsp协议将音视频数据传输到PC端播放器,通过rtmp协议将音视频数据传输到移动端播放器,当然有些还支持P2 ...

  4. Why is applicationhost.config still being added to source control even thought it's in gitignore

      Why is applicationhost.config still being added to source control even thought it's in gitignore g ...

  5. IdentityDbContext

    Move the ApplicationUser definition to your DAL. Inherit your MyDbContext from IdentityDbContext< ...

  6. C#如何把List of Object转换成List of T具体类型

    上周码程序的时候碰到个问题,因为设计上的约束,一个方法接受的参数只能为List<object>类型,然而该方法需要处理的真实数据则是确定的List<Currency>.然而C# ...

  7. NGINX将PHP带参数的URL地址重定向二级或多级域名访问

    今天项目中有一个手机站点需要用*.m.domain.com的三级域名访问. 如手机站点的访问网址为m.domain.com,手机下面的会员实际访问地址为index.php?username=$user ...

  8. Method Swizzling (方法调配)

    Method Swizzling是改变一个selector的实际实现的技术.通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现. 例如,我们想跟踪在程序中每 ...

  9. iOS数据库学习(1)-安装Navicat

    1.下载Navicat Premium 11.0.16.dmg 已经放到百度网盘,里面有安装文件和注册机 下载链接: http://pan.baidu.com/s/1sjI64HZ  密码: 2h7q ...

  10. \r,\n,\r\n的区别

    http://www.studyofnet.com/news/285.html \n是换行,英文是New line,表示使光标到行首\r是回车,英文是Carriage return,表示使光标下移一格 ...