#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
int n,m;
intmain(){
scanf("%d%d",&n,&m); if (m==1) returnprintf("%d",n-1),0;
returnprintf("%lld",1LL*n*(m-1)),0;
}
3|0B. Basketball Together
SB题,贪心地从大到小考虑每个人为队长,拉队员的话就从小的开始拉
#include<cstdio>#include<iostream>#include<algorithm>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int n,d,a[N],ans;
intmain(){
RI i,j; for (scanf("%d%d",&n,&d),i=1;i<=n;++i) scanf("%d",&a[i]);
for (++d,sort(a+1,a+n+1),i=0,j=n;i<j;--j)
{
int k=(d-1)/a[j]; if (i+k<j) i+=k,++ans; elsebreak;
}
returnprintf("%d",ans),0;
}
#include<cstdio>#include<iostream>#define int long long#define RI register int#define CI const int&usingnamespace std;
int n,ans;
inlineintcount(CI x){
return (x+1)/2-1+(x>=4?x/4-1:0);
}
signedmain(){
scanf("%lld",&n); int l=3,r=2147483647,mid;
while (l<=r)
{
mid=l+r>>1; if (count(mid)>=n) ans=mid,r=mid-1; else l=mid+1;
}
returnprintf("%lld",ans),0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=300005,mod=998244353;
int n,m,a[N],cnt,fac[N],ifac[N],ans; longlong pfx[N],sum;
inlineintquick_pow(int x,int p=mod-2,int mul=1){
for (;p;p>>=1,x=1LL*x*x%mod) if (p&1) mul=1LL*mul*x%mod; return mul;
}
inlinevoidinit(CI n){
RI i; for (fac[0]=i=1;i<=n;++i) fac[i]=1LL*fac[i-1]*i%mod;
for (ifac[n]=quick_pow(fac[n]),i=n-1;~i;--i) ifac[i]=1LL*ifac[i+1]*(i+1)%mod;
}
inlineintC(CI n,CI m){
return1LL*fac[n]*ifac[m]%mod*ifac[n-m]%mod;
}
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i,j; for (scanf("%d%d",&n,&m),i=1;i<=n;++i)
scanf("%d",&a[i]),pfx[i]=pfx[i-1]+a[i]; sum=pfx[n];
if (sum%2==0)
{
for (j=0,i=1;i<n;++i)
{
while (pfx[i]-pfx[j]>sum/2LL) ++j;
if (pfx[i]-pfx[j]==sum/2LL) ++cnt;
}
}
for (init(max(m,cnt)),i=0;i<=min(m,cnt);++i)
(ans+=1LL*C(cnt,i)*C(m,i)%mod*fac[i]%mod*quick_pow(1LL*(m-i)*(m-i-1)%mod,cnt-i)%mod*quick_pow(m-i,n-cnt*2)%mod)%=mod;
returnprintf("%d",ans),0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int n,a[N],b[N],c[2],cnt;
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; for (scanf("%d",&n),i=1;i<=n;++i)
scanf("%d",&a[i]),++c[b[i]=1LL*a[i]*a[i]%3];
if (c[0]>=c[1])
{
for (puts("2"),i=1;i<=n;++i) if (b[i]==1) putchar('1');
elseif (b[i]==0&&cnt<n/2) putchar('0'),++cnt; elseputchar('1');
} else {
for (puts("0"),i=1;i<=n;++i) if (b[i]==0) putchar('0');
elseif (b[i]==1&&cnt<n/2) putchar('1'),++cnt; elseputchar('0');
}
return0;
}
#include<cstdio>#include<iostream>#include<algorithm>#include<utility>#define RI register int#define CI const int&#define mp make_pair#define fi first#define se secondusingnamespace std;
constint N=100005;
typedef pair <int,int> pi;
int n,l[N],r[N],q,x,ans[35],cnt,sum; pi rst[N<<2];
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i,j; for (scanf("%d",&n),i=1;i<=n;++i) scanf("%d%d",&l[i],&r[i]);
for (j=0;j<=30;++j)
{
int k=1<<j; for (cnt=0,i=1;i<=n;++i)
if (r[i]-l[i]+1>=k) rst[++cnt]=mp(0,1),rst[++cnt]=mp(k,-1);
elseif (l[i]%k<=r[i]%k) rst[++cnt]=mp(l[i]%k,1),rst[++cnt]=mp(r[i]%k+1,-1);
else rst[++cnt]=mp(l[i]%k,1),rst[++cnt]=mp(k,-1),rst[++cnt]=mp(0,1),rst[++cnt]=mp(r[i]%k+1,-1);
for (sort(rst+1,rst+cnt+1),sum=0,i=1;i<=cnt;++i)
sum+=rst[i].se,ans[j]=max(ans[j],sum);
}
for (scanf("%d",&q),i=1;i<=q;++i)
for (scanf("%d",&x),j=0;j<=30;++j)
if ((x>>j)&1) { printf("%d\n",ans[j]); break; }
return0;
}
#include<cstdio>#include<map>#include<vector>#define RI register int#define CI const int#define fi first#define se secondusingnamespace std;
constint N=200005,mod=998244353;
int n,x,y,pri[N],lst[N],cnt,f[N],c[N],ans; vector <int> v[N]; map <int,int> s[N];
inlinevoidinc(int& x,CI y){
if ((x+=y)>=mod) x-=mod;
}
inlinevoiddec(int& x,CI y){
if ((x-=y)<0) x+=mod;
}
inlinevoidinit(CI n){
for (RI i=2;i<=n;++i)
{
if (!lst[i]) pri[++cnt]=i,lst[i]=i;
for (RI j=1;j<=cnt&&i*pri[j]<=n;++j)
if (lst[i*pri[j]]=pri[j],i%pri[j]==0) break;
}
}
inlineintcalc(CI x,int y){
y-=x; int z=1LL*x*(x-1)*y/2LL%mod; inc(z,1LL*y*(y-1)*x/2LL%mod); return z;
}
inlinevoidDFS(CI now=1,CI fa=0){
for (auto it:s[now]) inc(f[now],calc(it.se,c[it.fi]));
for (int to:v[now]) if (to!=fa)
{
DFS(to,now); if (s[to].size()>s[now].size()) swap(s[to],s[now]),f[now]=f[to];
for (auto it:s[to]) dec(f[now],calc(s[now][it.fi],c[it.fi])),
s[now][it.fi]+=it.se,inc(f[now],calc(s[now][it.fi],c[it.fi]));
}
inc(ans,f[now]);
}
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; for (scanf("%d",&n),init(200000),i=1;i<=n;++i)
for (scanf("%d",&x);x>1;)
{
y=lst[x]; ++c[y]; s[i][y]=1; while (x%y==0) x/=y;
}
for (i=1;i<n;++i) scanf("%d%d",&x,&y),v[x].push_back(y),v[y].push_back(x);
returnDFS(),printf("%d",ans),0;
}
#include<cstdio>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int n,q,p,bkt[N],cnt; longlong sum;
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout); RI i; for (scanf("%d%d",&n,&q),i=1;n;++i)
{
int cur=(i+1)>>1; bkt[i]=1;
if (cur<=n) sum+=1LL*i*cur,n-=cur;
else --bkt[i-2*n-1],sum+=1LL*i*n,n=0;
}
if (printf("%lld\n",sum),cnt=i-1,cnt>1)
{
for (i=cnt-2;i;--i) bkt[i]+=bkt[i+2];
}
int pfx=0; i=1; while (q--)
{
scanf("%d",&p); while (pfx+bkt[i]*2-1<p) pfx+=bkt[i++];
p-=pfx; int c=__builtin_ctz(p); printf("%d\n",i-1+c+(p>>c));
}
return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现