欢乐纪中B组周五模拟赛【2019.3.8】

版权声明:原创,未经作者允许禁止转载 https://blog.csdn.net/Mr_wuyongcong/article/details/88361763

前言


成绩

R a n k Rank 是有算别人的

R a n k Rank P e r s o n Person S c o r e Score A A B B C C
2 2 2017 m y s e l f 2017myself 210 210 100 100 100 100 10 10
3 3 2017 z y c 2017zyc 200 200 100 100 100 100 0 0
3 3 2017 x j q 2017xjq 200 200 100 100 100 100 0 0
3 3 2017 x x y 2017xxy 200 200 100 100 100 100 0 0
10 10 2017 l w 2017lw 130 130 100 100 30 30 0 0
14 14 2017 h j q 2017hjq 60 60 60 60 0 0 0 0
17 17 2017 h z b 2017hzb 30 30 30 30 0 0 0 0
18 18 2017 l r z 2017lrz 20 20 0 0 20 20 0 0

正题


T 1 : j z o j 3054 T1:jzoj3054- 祖孙询问【 L C A LCA

链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/88359248


T 2 : j z o j 3055 T2:jzoj3055- 比赛【数学 , , 统计】

连接:
https://blog.csdn.net/Mr_wuyongcong/article/details/88359658


T 3 : j z o j 3056 T3:jzoj3056- 数字【数位 d p , dp, 统计 , , 容斥】

连接:
https://blog.csdn.net/Mr_wuyongcong/article/details/88361756


s o m e   o f   c o d e some\ of\ code


T2 暴力

#include<cstdio>
#define ll long long
using namespace std;
ll n,a[50010],b[50010],ans1,ans2;
int main()
{
	scanf("%lld",&n);
	for(ll i=1;i<=n;i++)
	  scanf("%lld",&a[i]);
	for(ll i=1;i<=n;i++)
	  scanf("%lld",&b[i]);
	for(ll i=1;i<=n;i++)
	  for(ll j=1;j<=n;j++)
	  {
	  	ll w=(a[i]-b[j])*(a[i]-b[j]);
	  	if(a[i]>b[j]) ans1+=w;
	  	else ans2+=w;
	  }
	printf("%.1lf",(double)(ans1-ans2)/n);
}

T3 暴力

#include<cstdio>
#include<cstring>
using namespace std;
const int N=1010,XJQ=999983;
int n,Z,ans,m,a[12],c[12];
char s[12];
void dfs(int x,int ys,int ds)
{
	if(x==2*n){
		if(ys!=0&&ds!=0)
		  return;
		//for(int i=0;i<2*n;i++)
		//  printf("%d",c[i]);
		//putchar('\n');
		ans=(ans+1)%XJQ;
		return;
	}
	for(int i=1;i<=m;i++)
	{
		c[x]=a[i];
	    dfs(x+1,ys+a[i]*((x%2)?1:-1),ds+a[i]*((x>=n)?1:-1));
	}
}
int main()
{
	scanf("%d",&n);
	scanf("%s",s+1);
	//double star=clock();
	m=strlen(s+1);
	for(int i=1;i<=m;i++)
	  a[i]=s[i]-'0';
	dfs(0,0,0);
	printf("%d",ans);
}

总结

看题预估分 100 + 30 + 20 = 150 100+30+20=150
做题预估分 100 + 100 + 20 = 220 100+100+20=220
实际分数 100 + 100 + 10 = 210 100+100+10=210
T 1 T1 明显 L C A LCA ,直接切掉
T 2 T2 开始不会,后来发现了全排列的性质,然后推一下公式就切掉了
之后死刚 T 3 T3 ,然后公式全靠猜,结果10分


尾声

没有尾声

猜你喜欢

转载自blog.csdn.net/Mr_wuyongcong/article/details/88361763
今日推荐