关于 CF C
  • 板块学术版
  • 楼主w9095
  • 当前回复11
  • 已保存回复14
  • 发布时间2024/4/14 00:38
  • 上次更新2024/4/14 10:19:19
查看原帖
关于 CF C
569235
w9095楼主2024/4/14 00:38

为什么这个策略不对?

#include <bits/stdc++.h>
using namespace std;
long long t,n,op[1200],p[1200],s[600][600],cnt=0;
void solve(long long w,long long now)
{
	if(w==0)return;
	for(int i=1;i<=w;i++)
	    {
	   	op[++cnt]=now,p[cnt]=i;
		if(now==0)for(long long j=1;j<=n;j++)s[i][j]=j;
		else if(now==1)for(long long j=1;j<=n;j++)s[j][i]=j;
		}
    solve(w>>1,now^1);
}

int main()
{
	scanf("%lld",&t);
	while(t--)
	   {
	   	cnt=0;
	   	scanf("%lld",&n);
	   	solve(n,0);
	   	long long ans=0;
		for(int i=1;i<=n;i++)
		    for(int j=1;j<=n;j++)
			    ans+=s[i][j];
		printf("%lld %lld\n",ans,cnt);
		for(int i=1;i<=cnt;i++)
		    {
		    	printf("%lld %lld ",op[i]+1,p[i]);
		    	for(long long j=1;j<=n;j++)printf("%lld ",j);
		    	printf("\n");
			}
       }
	return 0;
} 

每次到 Expret 就被 C 题卡下来,如何提升 C 题能力?

2024/4/14 00:38
加载中...