NOIP提高组模拟赛加2
又双叒叕考炸了。。。
A. 光
我好像也被叫做光来着
这题,怎么说呢,不能说恶心,只能说非常恶心。
他是个大模拟!!!!
心态都打炸了,最后取得了\(0\)分好成绩
代码能力差,而且读题有问题,没有特别注意方向。。
这题思路比较简单,情况有点多,大力讨论吧。
码量还好,也就\(57\)行(\(loj\)标准格式\(209\)行,不要问我为什么这么丧心病狂)
code
#include
#include
#include
using namespace std;
const int maxn=1000005;
int n,m,k,sc[maxn],sh[maxn],sx[maxn],sy[maxn];
struct node{int x,y,idc,idh,idx,idy;}d[maxn];
bool vis[maxn][4];
long long ans=1;
char cc[5];
bool cmp_c(int x,int y){return d[x].x-d[x].y!=d[y].x-d[y].y?d[x].x-d[x].y
B. visit
水题,本来以为是\(exlucas\),其实只是\(lucas\)
\(T1\)时间用的有点多,不过还是比较明智的弃掉了。
但是!!但是!!!数组两维空间开反了!!没有开\(long long\)
\(100->60\)........
可恶。然而。
关于答案的求法,我觉得非常显然(不考虑优化的最简狮子)
所以这里不再赘述
code
#include
#include
#include
using namespace std;
#define int long long
typedef long long ll;
const int maxn=100005;
int T,mod,n,m;
int p[105],cnt;
int fac[105][maxn],inv[105][maxn];
ll ans;
int qpow(ll x,int y){
ll ans=1;
for(;y;y>>=1,x=x*x%mod)if(y&1)ans=ans*x%mod;
return ans%mod;
}
void pre(){
int x=mod;
for(int i=2;i*i<=x;++i)
if(x%i==0){p[++cnt]=i;x/=i;}
if(x!=1)p[++cnt]=x;
for(int k=1;k<=cnt;++k){
fac[k][0]=1;
int up=min(p[k],maxn);
for(int i=1;ix)return 0;
if(x==y||x==0||x==1)return 1;
if(x