ccpc

1003

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int l9 = 1000000+10;
long long int map[l9];
int main()
{
	int t;
	scanf("%d",&t);
	for(int i=0;i<t;i++)
	{
		long long int k,n,m;
		long long int sum=0;
		scanf("%lld%lld%lld",&n,&m,&k);
		for(int r=0;r<m;r++)
		{
			long long int u=0; 
			scanf("%lld",&u);
			map[r]=u-k;
		}
		sort(map,map+m);
		if(map[0]>0)sum+=map[0]*2;
		for(int r=1;r<m;r++)
		{
			sum+=(map[r]<0?-(map[r])*2:map[r]*2);
		}
		sum+=(k-1)*2;
		printf("%lld\n",sum);
	}
	return 0;
}

1007

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int map[36];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		memset(map,0,sizeof(map));
		string str;
		cin>>str;
		int max1=0;
		for(int k=0;k<str.length();k++)
		{
			map[str[k]-'a']++;
		}
		for(int k=0;k<36;k++)
		{
			max1=max(max1,map[k]);
		}
		printf("Case #%d: %d\n",i,max1);
	}
	return 0;
}

1011

#include<iostream>
using namespace std;
int A[60][60];
int K[5][5];
int main()
{
	int t;
	scanf("%d",&t);
	for(int q=1;q<=t;q++)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				scanf("%d",&A[i][j]);
			}
		}
		int s=0;
		for(int i=1;i<=3;i++)
		{
			for(int j=1;j<=3;j++)
			{
				scanf("%d",&K[i][j]);
				if(K[i][j]!=0)s++;
			}
		}
		
			for(int i=1;i<=n;i++)
			{
				for(int k=1;k<=n;k++)
				{
					
					if(s==1)
					    printf("%d",A[i][k]);
					else{
						printf("%d",0);
					}
					if(k!=n)printf(" ");
				}
				printf("\n");
			}
	}
	return 0;
}

1002

#include <bits/stdc++.h>
#define ll long long
#define IOS std::ios::sync_with_stdio(false);cin.tie(false);cout.tie(false);
#define N 1000010
using namespace std;
inline __int128 read()
{
	__int128 x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}

inline void print(__int128 x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)
		print(x/10);
	putchar(x%10+'0');
}

int sushu[N], name1[N], name2[N], ok[N], cnt, m;
ll ANS[N], sum[N], a[N], T, _n , _mod;

int wz(ll x)
{
	return x <= T ? name1[x] : name2[_n / x];
}

ll solve(ll x,ll mod)
{
	_mod = mod;
	if (x <= 1)
		return x;
	_n = x;
	T = sqrt(_n + 0.5);
	cnt=0;
	m=0;
	for (int i = 2; i <= T; i++)
	{
		if (!ok[i])
			sushu[++cnt] = i, sum[cnt] = sum[cnt - 1] + i;
		for (int j = 1; j <= cnt && i * sushu[j] <= T; j++)
		{
			ok[i * sushu[j]] = 1;
			if (i % sushu[j] == 0)
				break;
		}
	}
	for (ll l = 1; l <= _n; l = _n / (_n / l) + 1)
	{
		a[++m] = _n / l;
		if (a[m] <= T)
			name1[a[m]] = m;
		else
			name2[_n / a[m]] = m;
		ANS[m] = (a[m] * (a[m] + 1) / 2 - 1)%_mod;
	}
	for (int i = 1; i <= cnt; i++)
		for (int j = 1; j <= m && (ll)sushu[i] * sushu[i] <= a[j]; j++)
			ANS[j] = (ANS[j] - ((ll)sushu[i] * (ANS[wz(a[j] / sushu[i])] - sum[i - 1]))%_mod)%_mod;

	return ANS[wz(_n)];
}
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		__int128 n = read();
		__int128 mod = read();
		if(n <= 1) cout<<0<<endl;
		else
		{
			__int128 ans = (solve(n+1,mod) - 2 ) % mod;
			ans = (ans + (3 + n+1) * (n-1) / 2)%mod;
			print(ans%mod);
			cout<<endl;
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值