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

前言


成绩

R a n k Rank Rank是有算别人的

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

正题


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

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


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

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


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

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


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


T2 暴力

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


尾声

没有尾声

你可能感兴趣的:(模拟赛)