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青岛网络赛滚粗记的主要内容,如果未能解决你的问题,请参考以下文章