欢乐纪中某A and B组赛【2019.1.23】

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

前言

翻车的更惨


成绩

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
29 29 2017 m y s e l f 2017myself 160 160 70 70 0 0 90 90
36 36 2017 z y c 2017zyc 140 140 70 70 10 10 60 60
54 54 2017 l w 2017lw 100 100 50 50 0 0 50 50
61 61 2017 x x y 2017xxy 90 90 80 80 10 10 0 0
61 61 2017 h z b 2017hzb 90 90 60 60 0 0 30 30
68 68 2017 l r z 2017lrz 80 80 50 50 0 0 30 30
121 121 2017 h j q 2017hjq 10 10 0 0 0 0 10 10

正题


T 1 : j z o j 3084 T1:jzoj3084- 超级变变变【数学】

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86611138


T 2 : j z o j 3085 T2:jzoj3085- 图的计数【组合数 , , 数论】

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86611624


T 3 : j z o j 3086 , l u o g u 3831 [ S H O I 2012 ] T3:jzoj3086,luogu3831-[SHOI2012] 回家的路【最短路 , , 拆点】

博客链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/86611809


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


T1 70分code

#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll k,a,b;
ll get_ans(ll x)
{
	if(k==1) return max(x,0ll);
	else if(k==0) return x+1;
	x=max(x,0ll);
	ll z=1,ans=0;
	while(z*k<=x){
		ans+=z;
		if(z*k+z-1>x) ans-=z*k+z-1-x;
		z*=2;
	}
	return ans;
}
int main()
{
	scanf("%lld%lld%lld",&k,&a,&b);
	printf("%lld",get_ans(b)-get_ans(a-1));
}


T2 0code

#include<cstdio>
#define ll long long
using namespace std;
const ll XJQ=1e9+7;
ll n,m,j[10010],z;
ll power(ll x,ll b)
{
	ll ans=1;
	x%=XJQ;
	while(b){
		if(b&1) ans=ans*x%XJQ;
		x=x*x%XJQ;b>>=1;
	}
	return ans;
}
int main()
{
	scanf("%lld%lld",&n,&m);
	j[0]=1;
	for(ll i=1;i<=n-2;i++)
	  j[i]=j[i-1]*i%XJQ;
	for(ll i=1;i<=n-1;i++)
	  z+=i;
	printf("%lld",power(n-1+n+z,m-n+1)*j[n-2]%XJQ);
}

总结

T1:开始就想到正确的解法,然后不会。之后去敲后两题了。之后又回来,发现之前思路是对的,结果没有特判偶数就GG了。70分

T2:开始就想到就是在一条链上加边,然后没有主要边是相同的情况,又GG了。0分

T3:这不明显最短路吗?然后写暴力的时候突然想到分层图,就分个层,结果没有判断-1。又GG了。90分

反正就是思路都很好,就是细节问题太多了

猜你喜欢

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