我好菜鸭
A.除了二,其他都可以减n-1,所以除了二都能减到一
#include<cstdio>
int main()
{
int n;scanf(\"%d\",&n);
if(n!=2)
printf(\"1\\n\");
else
printf(\"2\\n\");
return 0;
}
B.对于数字相同的,颜色可能相同,把一个数字看作一个颜色则该颜色的个数为n-arr[i]
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int arr[100010],g[100010];
int color[100010];
bool cmp(int a,int b)
{
return arr[a]<arr[b];
}
int main()
{
int n;cin>>n;
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
for(int i=0;i<=n;i++)
g[i]=i;
sort(g,g+n,cmp);
bool ok=1;
int j=1;
for(int i=0;i<n;)
{
int u=arr[g[i]];
int d = n - u;
for(int k=0;k<d;k++)
if(arr[g[i+k]]!=u)
ok=0;
else
color[g[i+k]]=j;
i=i+d;
j++;
}
if(ok)
{
cout<<\"Possible\"<<endl;
for(int i=0;i<n;i++)
cout<<color[i]<<\" \";
cout<<endl;
}
else
cout<<\"Impossible\"<<endl;
return 0;
}
C.推出公式C(n-1,k)*m*(m-1)^k
#include<cstdio>
#define ll long long
const int N = 2000 + 5;
const ll MOD = 998244353;
int comb[N][N];
void init(){
for(int i = 0; i < N; i ++){
comb[i][0] = comb[i][i] = 1;
for(int j = 1; j < i; j ++){
comb[i][j] = comb[i-1][j] + comb[i-1][j-1];
comb[i][j] %= MOD;
}
}
}
ll qpow(ll a,ll b)
{
ll ret=1;
while(b)
{
if(b&1)ret=(ret*a)%MOD;
a=(a*a)%MOD;
b>>=1;
}
return ret%MOD;
}
int main(){
init();
int n,m,k;
scanf(\"%d%d%d\",&n,&m,&k);
printf(\"%I64d\\n\",((comb[n-1][k]%MOD*m%MOD*qpow(m-1,k)%MOD)%+MOD)%MOD);
return 0;
}
继续阅读与本文标签相同的文章
-
关注盲人群体 美团推出语音点外卖应用
2026-05-19栏目: 教程
-
卡特马克让制造走向“智造”,百年厨具品牌走向智能化
2026-05-19栏目: 教程
-
拼多多盘初涨逾2%,回应腾讯退出母公司股东行列为正常变化
2026-05-19栏目: 教程
-
Android 10在用户权限方面有何调整?现在真的更安全了吗?
2026-05-19栏目: 教程
-
Alex Kipman:视网膜投影技术将成为AR眼镜最佳代替方案
2026-05-19栏目: 教程
