2
10
2017
0

CF Round #392

A.

 

#include <stdio.h>
#define max(a,b) ((a) > (b) ? (a) : (b))
inline int F() { register int aa , bb , ch;
	while(ch = getchar() , (ch<'0'||ch>'9') && ch != '-'); ch == '-' ? aa=bb=0 : (aa=ch-'0',bb=1);
	while(ch = getchar() , ch>='0'&&ch<='9') aa = aa*10 + ch-'0'; return bb ? aa : -aa;
}
const int Maxn = 100010;
int a[Maxn] , mx = 0 , ans = 0;
int main() {
	int n = F();
	for(int i=1; i<=n; ++i) a[i] = F() , mx = max(mx , a[i]);
	for(int i=1; i<=n; ++i) ans += mx - a[i];
	printf("%d\n",ans );
}

B.

 

#include <stdio.h>
#include <string.h>
const int Maxn = 100005;
int n , a , b , c , d , lz[5] , ans[5]; char s[Maxn];
int main() {
	scanf("%s",s+1); n = strlen(s+1);
	for(int i=1; i<=n; ++i) {
		if(s[i] == 'R') lz[i%4] = 0;
		if(s[i] == 'B') lz[i%4] = 1;
		if(s[i] == 'Y') lz[i%4] = 2;
		if(s[i] == 'G') lz[i%4] = 3;
	}
	for(int i=1; i<=n; ++i)
		if(s[i] == '!') ++ans[lz[i%4]];
	printf("%d %d %d %d\n",ans[0],ans[1],ans[2],ans[3]);
}

C.

找个循环节然后纯模拟,题目看错。。以为蛇形的,代码细节,不放上来了。

D.

首先位数越少显然越小,然后低位越大显然越小,然后记录一下连续0的个数,不能和前面连上的0单独一位,跑一下即可。代码又臭又长不放了。

E.

先建出最小权值的合法树,然后加,考虑优先+上限再dfs子树即可(这里sb了写了好几遍然后手滑不小心删了就懒得再写了)

F.

我们考虑等比数列公比是p/q,则第一项肯定是q的n-1次方的倍数这样才都是整数。我们考虑枚举公比,ii是q^(n-1),jj是p^(n-1),然后r*ii/jj就是最大的首项,(r*ii/jj)/ii - (l-1)/ii就是我可以选几个公比是p/q这样的,然后统计即可。然后直接暴力枚举公差会炸我们考虑最大范围q^(n-1)<=1e7所以是pow(2,log2(1e7)/(n-1)+1),但是n=1,n=2时候会t而且很好特判所以很轻松的特判就可以了。

 

#include <stdio.h>
#include <math.h>
#define ll long long
ll gcd(ll a , ll b) { return b ? gcd(b,a%b) : a; }
ll p(ll a , ll b) {
	ll ans = 1;
	for(; b; b>>=1 , a*=a) if(b&1) ans *= a;
	return ans;
}
ll l , r , n , ans;
int main() {
	scanf("%lld%lld%lld",&n,&l,&r);
	if(n > 24) { puts("0"); return 0; }
	if(n == 1) { printf("%lld\n",r-l+1); return 0; }
	if(n == 2) { printf("%lld\n",(r-l+1)*(r-l)); return 0; }
	int lim = pow(2,log2(1e7)/(n-1)+1);
	for(int i=1; i<=lim; ++i)
		for(int j=i+1; j<=lim; ++j)
			if(gcd(i,j) == 1) {
				long long ii = p(i,n-1) , jj = p(j,n-1);
				if(l*jj/ii > r) continue;
				ans += (r*ii/jj)/ii - (l-1)/ii;
			}
	printf("%lld\n",ans*2 );
}
Category: Codeforces | Tags: | Read Count: 933

登录 *


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

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com