首页 > 代码库 > 2016青岛网络赛滚粗记

2016青岛网络赛滚粗记

TonyFang+Sps+我=5/12

滚了个大粗

 

01 I count two three

题意:求形同技术分享的数中大于n的最小值

题解:预处理所有的(5194个),在这里面二分

#include<map>#include<stack>#include<queue>#include<cstdio>#include<string>#include<vector>#include<cstring>#include<complex>#include<iostream>#include<assert.h>#include<algorithm>using namespace std;#define inf 1001001001#define infll 1001001001001001001LL#define ll long long#define dbg(vari) cerr<<#vari<<" = "<<(vari)<<endl#define gmax(a,b) (a)=max((a),(b))#define gmin(a,b) (a)=min((a),(b))#define Ri register int#define gc getchar()#define il inline#include<set>il int read(){    bool f=true;Ri x=0;char ch;while(!isdigit(ch=gc))if(ch==-)f=false;while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-0;ch=gc;}return f?x:-x;}#define gi read()ll p[10000],_p;set<ll>q;int main(){    q.insert(1);    int cnt=0;    while(!q.empty()){        p[++_p]=*q.begin();        q.erase(p[_p]);         ll t=p[_p];        if(t>1000000000){break;}        if(2*t<=1000000000)q.insert(2*t);        if(3*t<=1000000000)q.insert(5*t);        if(5*t<=1000000000)q.insert(3*t);        if(7*t<=1000000000)q.insert(7*t);    }    int T=gi;    while(T--){        int n=gi;        int pos = lower_bound(p+1, p+_p+1, n) - p;        printf("%I64d\n", p[pos]);    }}

02

题意:求技术分享,输入文件<1M

题解:显然收敛,如果n很大就输出一个定值,否则暴力

 

03

题意:给定屏蔽词集合和文章,输出屏蔽后的结果

题解:AC自动机。卡空间*****

04

05

题意:扩展石头剪刀步的出售方式,n种出手,问游戏是否平衡

题解:判断奇偶性,奇数可以,偶数不行。

06

题意:最大化欧拉路上点权异或和

题解:如果是欧拉回路,枚举起点.否则欧拉路是唯一的,判断一下度数就可以了

07

 

08

09

10

 

11

题意:边权为1的无向图,每条边有一个花费,求最小花费使得1~n 最短路每条都被截断

题解:1~n的最短路图上最小割,同bzoj1266 [AHOI2006]上学路线route

我写的 QAQ qnmdSPS错误题面吔屎啦

12

13

 

 

又是一个坑。。

2016青岛网络赛滚粗记