c++
LK自动机
Till the end.
展开
-
魔法石之恋
题目:Description 在《Harry Potter and the Sorcerer’s Stone》中,想得到魔法石,必须要通过许许多多的测试和游戏。现在阿不思•邓布利多认为这些游戏都具有魔法力,魔法师们能够轻松的通过,我们要增加一些只能够通过智力解决的题目,需要真正的聪明人才能够通过。现在由于我们敬爱的Harry Potter同学时间有限,需要你的帮助,请你帮助他来解决这个问题。必须要在原创 2017-05-11 17:06:11 · 681 阅读 · 0 评论 -
OIBH基础版普及组7月月赛 天天去旅行
题目:Description 暑假到了,天天和妈妈一起背包去西藏玩(话说西藏最近不清静啊~),天天想带好多东西的,可是,包包的容量是有限的,她,必须得扔掉些东西。她收拾包已经头昏脑胀的了,所以求助于你,希望你能帮自己算算能最多带多少东西。 每个东西对于天天来说,有一个重要值,天天当然希望越重要的东西都带着咯,所以,你所需要做的,就是算出她能带东西的总最大重要值。 Input 第1行为天天原创 2017-05-14 10:25:54 · 693 阅读 · 0 评论 -
最大数(提高+/省选-)
题目:题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内原创 2017-05-14 11:57:51 · 384 阅读 · 0 评论 -
最大数(提高+/省选-)
题目:题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内原创 2017-05-14 11:58:15 · 509 阅读 · 0 评论 -
lca
最近公共祖先。#include<iostream> using namespace std; int jump(int u,int step) { for (int k=0 k<=20 k++) if (step&(l<<k)>0) u:=f[u][k]; return u; } int lca(int u,int v) { if (deep[u])<deep[v]) swap(原创 2017-05-07 11:40:54 · 419 阅读 · 0 评论 -
spfa
void spfa() { memset(dist,0x3f,sizeof(dist)); dist[1]=0; queue<int> que; que.push(1); inque[1]=true; while (!que.empty()) { int now=que.front(); que.pop();原创 2017-05-07 12:05:26 · 344 阅读 · 0 评论 -
维护队列
给一个队列,三种操作。 1.入队 2.出队 3.前缀和#include<iostream> int a[100000001]; using namespace std; int n; int main() { int q,tail,head,t; cin>>n; tail=0; head=0; for (int i=1; i<=n; i++) {原创 2017-05-07 14:28:22 · 704 阅读 · 0 评论 -
拓扑排序
void top_sort() { int q[maxn]; int size=0; for (int a=1;a<=n;a++) if (!in[a]) q[++size]=a; for (int a=1;a<=n;a++) { int now=q[a]; for (e(now,p)) {原创 2017-05-07 14:55:52 · 358 阅读 · 0 评论