2016青岛网络赛滚粗记

Posted zhouyis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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青岛网络赛滚粗记的主要内容,如果未能解决你的问题,请参考以下文章

Noip2016滚粗记QAQ

NOIP2016滚粗记

滚粗记之2016军训后学校模拟赛

noip2016滚粗记

NOIP2016tg滚粗记

thusc2016游记&&滚粗记&&酱油记