Noip2016
<这篇是以前的,不开新的了,借版面来换了个标题>
高二了
开学一周,每天被文化课作业碾压。。。
但是仍然阻挡不了想刷题的心情。。。
对付noip2016的几块:(有点少,以后补)
高精度(c++模板仍未生成)
[bzoj2656]
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int cas; struct data{ ],l; data(){ v[]=;l=; } void clear(){ memset(v,,; } }n,p,q; ]; void read(data &x){ data a;scanf();a.l=strlen(ch+); ;i<=a.l;i++)a.v[i]=ch[a.l-i+]-'; ;i<=a.l+;i++)a.v[i]=;//ºóÃæµÄÊý×é×îºÃ¿ÉÒÔÇå¿ÕһϠx.l=(a.l-)/+; ;i<=x.l;i++) { x.v[i]=; ;k<=;k++) { x.v[i]=x.v[i]*+a.v[(i-)*+(-k)]; } } } data operator+(data a,data b){ if(a.l<b.l)swap(a,b);int t=b.l; ;i<=t;i++)a.v[i]+=b.v[i]; ;i<=t;i++) ){ if(i==a.l){ a.v[i+]=;a.l++; } a.v[i+]+=a.v[i]/;t=max(t,i+); a.v[i]=a.v[i]%; } return a; } data operator+(data a,int p) { data b;b.v[]=p;b.l=;return a+b; } data operator/(data a,int p){ data b;; ;i--) { all=all*+a.v[i];b.v[i]=all/p;all=all-b.v[i]*p; } ;i<=a.l;i++)a.v[i]=b.v[i]; &&a.l>)a.l--;return a; } void calc(data x) { &&x.v[]==){ p=x;q.clear();return; } calc((x+)/);]&)p=p+q;else q=p+q; } void print(data a){ printf("%d",a.v[a.l]); ;i>;i--)printf("%04d",a.v[i]);printf("\n"); } int main() { scanf("%d",&cas); while(cas--){ read(n);calc(n);print(p); } }
高精度重载+/
图论相关:欧拉路 双联通分量(以及构造)...点分治?
#include<cstdio> #include<algorithm> #include<cstring> #define N 500000 using namespace std; int u,v,edgenum,nl,nr,m,ans; int vet[N],head[N],next[N],flag[N],match[N]; void add(int u,int v) { edgenum++;vet[edgenum]=v;next[edgenum]=head[u]; head[u]=edgenum; } bool dfs(int u) { flag[u]=; int e=head[u]; ) { int v=vet[e]; ||flag[match[v]]==&&dfs(match[v])) { match[v]=u;match[u]=v; return true; } e=next[e]; } return false; } int main() { scanf("%d%d%d",&nl,&nr,&m); ;i<=m;i++) { scanf("%d%d",&u,&v); v+=nl;add(u,v); } ;i<=nl;i++) { memset(flag,,sizeof(flag)); if(dfs(i))ans++; } printf("%d\n",ans); ;i<=nl;i++))match[i]-=nl; ;i<=nl;i++)printf("%d ",match[i]); }
二分图匹配
可行遍性问题:
hamilton回路问题(它是一个np问题,目前没有多项式算法,连判定都需要暴搜):每个点恰好走一次回到出发点。充分条件: 无向连通图中任意2点度数之和大于等于顶点数,则必定存在哈密顿回路。
无向图的欧拉回路:所有顶点为偶点
有向图的欧拉回路:所有顶点入度等于出度
一个图存在欧拉路当且仅当存在两个奇点(度数为奇数的点)或不存在奇点。
暴搜(去年没好好练吃亏了)
各式各样的dp(也包括找规律)
数论相关:联赛层面应该差不多了,以防万一先留着吧。
高斯消元,只剩下背背背
奇奇怪怪的一些写法:归排 差分 2-sat...想不出来的时候试试二分大法
网络流 可能性不大 准备了总是不会错的
kmp:有个模板是字符串重复那道题,代码在暑期集训day3那里。。。下面贴一段很详细的题解:
假设字符串为S,长度为N,子串T重复K次后得到串S,那么T的长度一定为L = N/K(要整除),则T = S[1...L],将S拆分成K份,每份长度为L,则有
S[1...L] = S[L+1...2L] = S[2L+1...3L] = ... = S[(K-1)L+1...KL]
由于要保证K最大,势必L要取最小,所以根据Next函数的定义,有Next[KL] = (K-1)L;
即Next[N] = N - L,所以L = N - Next[N];
但是得出的长度L还要保证能被N整除,所以如果不能整除说明L = N,即K = 1;而如果能整除,那么K = N / (N - Next[N]);
因而我们只要对字符串S做一趟KMP,对其求Next数组,剩下的就是上述结论
时间复杂度O(n)
偶然在一篇blog里看到的,借来共勉:
尽人事,听天命。相信自己可以拿出最好的状态。还是一样,考场思路开阔,胆大心细,勇于乱搞,rp++.
愿这是一场属于所有OIer的盛宴.
day1:先简单记录一下,希望明天加油!
T1:模拟,希望不会写挂,rp++
T2:这样看来好像还真不能说出题人超纲了,好多神犇都用大力数据结构维护了,我稍稍想到了一些意思但是没有什么卵用。希望暴力不要写挂。对拍助我。
T3:确实蛮后悔的,不该跑最小生成树,但是现在说什么都晚了。希望数据水一点。。。能给我一些分数吧。。。另外感觉如果这题在T2应该会有更多人AC吧。复述一下nbc的状态——f[i][j]=min{f[i-1][j]+dis[c[i-1]][c[i]]},f[i][j]=min{g[i-1][j]+dis[d[i-1]][c[i]]*p[i-1]+(1-p[i-1])*dis[c[i-1]][c[i]]}……claris说知道期望可加性就好了。。。唉。。。
Noip2016的更多相关文章
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- NOIp2016 游记
DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...
- [Noip2016]蚯蚓 D2 T2 队列
[Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- NOIP2016普及总结
---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- 游记——noip2016
2016.11.18 (day 0) 呆在家. 悠闲地呆在家.. 明后天可能出现的错误: 1)没打freopen.打了ctime: 2)对拍程序忘记怎么写了...忘记随机化种子怎么写了: 3)不知道厕 ...
- NOIP2016报零记
其实,NOIP2016已经于10天之前就结束了,但是由于种种原因,没有写总结. 现在就来填上这个坑吧. DAY1: T1:一道简(kun)单(nan)的模拟,虽然ac,但是考试的时候总觉得怪怪的.并且 ...
- NOIP2016日记
今天下午2:30~4:30考NOIP2016..我4:00前久出来了,没仔细检查.. 错了两道基础题..(T_T) >_< 至少能过..就这样吧..努力复赛!!
随机推荐
- SQL Server 数据库查找重复记录的几种方法
http://www.hanyu123.cn/html/c61/6790.html 一.查某一列(或多列)的重复值.(只可以查出重复记录的值,不能查出整个记录的信息) 例如:查找stuid,stuna ...
- 创建一个点状注记(MarkerElement)
1.根据XY创建一个点 /// <summary> /// 根据x y创建新点 /// </summary> /// <param name="dX" ...
- Shader的学习方法总结
最近网友candycat1992的新书<Unity Shader入门精要>出版了,估计万千的中国unity开发者又要掀起一波学Shader热潮了.我也想把自己这几年学习Shader的一些历 ...
- angularjs 中state.go 跳转并且打开新的浏览器窗口
包子最近遇到业务人员提的非常无厘头的需求,就是调页面的时候,一定要打开一个新的浏览器窗口...>o<奇葩!!! 但是我的页面都是state.go跳转的呀,我各种百度,发现,貌似state, ...
- Test Regular Expressions Online with RegExr免费的正则表达式检验网站
免费的正则表达式检验网站: http://www.regexr.com
- 如何设置phpMyAdmin自动登录和取消自动登录
如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- PHP操作SQL Server 2008/2012
PHP操作SQL Server驱动,微软官方提供2个版本,Version 2.0 和 Version 3.0 Version 2.0 版本支持的操作系统有: Windows Server 2003 S ...
- win7使用自带资源管理器来登陆FTP
使用windows自带的资源管理器登陆FTP,其实很简单,打开计算机,在地址栏直接输入ftp://ftp.hostname即可. 但是这种方式需要每次输入ip地址,还要输入用户名和密码,比较麻烦.可能 ...
- C#静态常量和动态常量的区别
C#拥有两种不同的常量:静态常量(compile-time constants)和动态常量(runtime constants).它们有不同的特性,错误的使用不仅会损失效率,还可能造成错误.相比之下 ...