Pluto_Rabbit's Blog

蒟蒻妹纸一枚,轻拍

【NOIP2015 Training Contest #6】

Jacinth posted @ 2015年8月07日 17:00 in ZHOJ with tags Contest NOIP , 580 阅读

高能的比赛,还有提答,可是难道你认为我真的会吗?!

考试的时候各种暴力~~~ 然后T3光荣地忘记把文件名给改了,少了25分(然而300分的题平均分才60+啊)

于是rank狂降,赶脚很忧桑

ZHOJ-1952 ZCC Loves Sequences

暴力写写调了一大把时间,然后边上的线段树大师说有n^4 log n的做法然后膜了膜%%%

然而还是只拿到了暴力的40分(不兹磁哦),不过想想也是毕竟n=50的时候本机测就已经很虚了。。。

然后讲题的时候满分爷讲了我并没听得清楚的数学方法

然后就开始答案错误~~~

发现自己把ans定义成long long,然而计算的时候里面的数都是int,感觉肯定有猫腻啊

改了就对了QAQ,怪我咯

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
#define mod 100000007
long long ans,l,n,b,a[100];
int main()
{
	while (scanf("%lld%lld",&n,&b)==2)
	{
		for (long long i=1;i<=n;++i) scanf("%lld",&a[i]);
		if (n==1){ printf("%lld\n",b); continue;	}
		ans=0;
		for (long long i=1;i<=n;++i)
			if (a[i]!=a[i+1] || i==n) ans=(ans+(b-1)*n-1)%mod;
		l=0;
		for (long long i=1;i<=n-2;++i)
			if (a[i]==a[i+2]&&a[i]!=a[i+1]) ++l;
			else if (l!=0) ans=(ans+mod-l*(l+1)/2)%mod,l=0;
		ans=(ans+mod-l*(l+1)/2+2)%mod;
		printf("%lld\n",ans);
	}
	return 0;
}

表示这代码长度~~~

 

ZCC Loves Cards II

dei,这就是一道提答题,然而并不会

表示期望值怎么算?!至今仍抓狂中

于是就只提了第一个点,卷了10分走人~~

%%%random大师,您能分享random的经验吗。。。

 

ZCC Loves Cards III

我傻B没改文件名,25分啊啊啊啊啊啊啊

这是一次经验教训?惨痛的经历

至今只写了暴力,于是就先发炒鸡暴力的必定TLE的程序,标算据说差分,于是此兔已死~~~

%%%znz大师

#include <fstream>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cstring>
#include <ctime>
#include <cmath>
#include <string>
#include <algorithm>
#include <queue>
#include <set>
#include <map>

using namespace std;

#define gch getchar
#define mp make_pair
#define NN 100010

bool s[NN],f[NN],tmp[NN];
int sum,ans_min,a,b,c,d,e,n,l[NN],r[NN],N;

char C_get;
void read(int &x)
{
	for(x=0,C_get=gch();(C_get<'0'||C_get>'9')&&C_get!='-'&&C_get!='+';C_get=gch());
	if(C_get=='-')
	{
		for(C_get=gch();C_get>='0'&&C_get<='9';C_get=gch())x=x*10-C_get+'0';
	}
	else
	{
		if(C_get=='+')C_get=gch();
		for(;C_get>='0'&&C_get<='9';C_get=gch())x=x*10+C_get-'0';
	}
}

bool Checks()
{
	memcpy(tmp,s,sizeof(s));
	for (int i=1;i<=n;++i)
	{
		if (f[i]) for (int j=l[i];j<=r[i];++j) tmp[j]=!tmp[j];
	}
	for (int i=1;i<=N;++i) if (!tmp[i]) return 0;
	return 1;
}
 
void bfs(int xx)
{
	if (xx>n) 
	{
		if (Checks()) if (sum<ans_min) ans_min=sum;
		return;
	}
	f[xx]=1;
	sum+=r[xx]-l[xx]+1;
	bfs(xx+1);
	sum-=r[xx]-l[xx]+1;
	f[xx]=0;
	bfs(xx+1);
	return;
}

int main()
{
	while (scanf("%d%d%d%d%d",&a,&b,&c,&d,&e)!=EOF)
	{
		read(n);
		if (n==0)
		{
			if (b==0 && d==0) puts("0");
			else puts("-1");
			continue;
		}
		N=a+b+c+d+e;
		memset(s,1,sizeof(s));
		for (int i=a+1;i<=a+b;++i) s[i]=0;
		for (int i=a+b+c+1;i<=a+b+c+d;++i) s[i]=0;
		for (int i=1;i<=n;++i)
		{
			read(l[i]); read(r[i]);
		}
		ans_min=0x7fffffff;
		memset(f,0,sizeof(f));
		sum=0;
		bfs(1);
		if (ans_min==0x7fffffff) puts("-1"); else
		printf("%d\n",ans_min);
	}
	return 0;
}

啊!好大的一场比赛!

已跪

最后膜一膜出题人 %%%__Shi

Avatar_small
__Shi 说:
2015年8月11日 20:22

期待第二场平均分翻倍哦。。。

Avatar_small
qwer 说:
2015年8月20日 20:05

@__Shi: 厚颜无耻之徒


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter