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

现在版本号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. codeforces 712C C. Memory and De-Evolution(贪心)

    题目链接:http://codeforces.com/problemset/problem/712/C 题目大意: 给连个值x,y (3 ≤ y < x ≤ 100 000), x,y都为等边三 ...

  2. 入门:HTML表单与Java 后台交互(复选框提交)

    仅仅给出部分关键代码: HTML form code: <form action="JavaFormTest" method="post" name=&q ...

  3. django笔记-模型数据模板呈现过程记录(多对多关系)

    首先,推荐一个网址:http://www.tuicool.com/articles/BfqYz2F,因为这里的比我的要有条理,更有利于各位的理解. 以下仅为为个人一次不完整的笔记: 环境:ubuntu ...

  4. php操作大文件

    看了http://hi.baidu.com/qiaoyuetian/item/76c51f0ce25030e4f45ba69e(php读取大文件详解),然后测试了里边的代码,发现一些错误, 总结,红色 ...

  5. Python 对象的引用计数和拷贝

    Python 对象的引用计数和拷贝 Python是一种面向对象的语言,包括变量.函数.类.模块等等一切皆对象. 在python中,每个对象有以下三个属性: 1.id,每个对象都有一个唯一的身份标识自己 ...

  6. sqlmap注入检测经验0x01

    某日偶遇一SQLInjection Point,MSSQL 2008,已开启显错模式. 马上扔进SQLMap跑,一路顺畅,竟然还是SA的权限,心想运气真好,无论如何都拿定了. 数据库,表,列都列出来了 ...

  7. eclipse的安装环境及eclipse下maven的配置安装

    之前安装zookeeper的时候,就配置过linux下的java环境,即安装过linux JDK,配置过JAVA_HOME   和PATH  变量,,, 现在要运行一个java客户端,来消费kafka ...

  8. svn更改分支名字,move命令

    名称 svn move — 移动一个文件或目录. 概要 svn move SRC DST 描述 这个命令移动文件或目录到你的工作拷贝或者是版本库. 提示 这个命令同svn copy加一个svn del ...

  9. Linux操作、hadoop和sh脚本小结

    近期一直在忙项目上的事情,今天对以前的工作做一个简单的小结.明天就是国庆节啦. 1  脚本可以手动执行,可是crontab缺总是找不到路径? #!/bin/bash. /etc/profile . / ...

  10. 【AngularJS】—— 1 初识AngularJs

    怀着激动与忐忑的心情,开始了学习AngularJS的旅程,很久之前就听说了这个前端框架,但是由于自己一直没有从事相关的工作,因此也没有进行学习.这次正好学习AngularJS,直接复习一下前端的知识. ...