首页 > 其他分享 >20240222比赛总结

20240222比赛总结

时间:2024-02-23 14:49:45浏览次数:33  
标签:总结 比赛 int 20240222 ++ ans include bx void

T1 打赌

https://gxyzoj.com/d/hzoj/p/3642

一道大模拟,容易发现,连续的4个数的和为14,这些直接求和,其余暴力处理即可

代码:

#include<cstdio>
#define ll long long
using namespace std;
int r,c,x[10]={1,6,4,3,2,5};
ll ans;
void Left()
{
	int a=x[0],b=x[1],c=x[2],d=x[3];
	x[0]=d,x[1]=c,x[2]=a,x[3]=b;
}
void Right()
{
	int a=x[0],b=x[1],c=x[2],d=x[3];
	x[0]=c,x[1]=d,x[2]=b,x[3]=a;
}
void Down()
{
	int a=x[0],b=x[1],c=x[4],d=x[5];
	x[0]=d,x[1]=c,x[4]=a,x[5]=b;
}
int main()
{
	scanf("%d%d",&r,&c);
	for(int i=1;i<=r;i++)
	{
		int t=c/4,s=c%4;
		if(s==0) s=4;
		ans=ans+1ll*t*14;
		if(s<4) ans=ans+1ll*x[0];
		for(int j=1;j<s;j++)
		{
			if(i%2) Right();
			else Left();
			if(j==1&&(s==2||s==3)) ans=ans+1ll*x[0];
			if(j==2&&s==3) ans=ans+1ll*x[0];
		}
		Down();
	}
	printf("%lld",ans);
	return 0;
}

T2 舞会

https://gxyzoj.com/d/hzoj/p/3643

先分类排序,很明显,身高相近的两个人配对更优,所以排序后用双指针统计答案即可

代码:

#include<cstdio>
#include<algorithm>
using namespace std;
int n,ax[100005],ay[100005],bx[100005],by[100005];
int id1,id2,id3,id4,ans;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		int a;
		scanf("%d",&a);
		if(a>0) ax[++id1]=a;
		else bx[++id2]=-a;
	}
	for(int i=1;i<=n;i++)
	{
		int b;
		scanf("%d",&b);
		if(b>0) ay[++id3]=b;
		else by[++id4]=-b;
	}
	sort(ax+1,ax+id1+1);
	sort(bx+1,bx+id2+1);
	sort(ay+1,ay+id3+1);
	sort(by+1,by+id4+1);
	for(int i=1,j=0;i<=id1;i++)
	{
	//	printf("%d ",ax[i]);
		while(j<id4&&by[j+1]<=ax[i]) j++;
		if(j<=id4&&by[j+1]>ax[i])
		{
			ans++,j++;
			by[j]=0;
		}
	}
//	printf("\n");
	for(int i=1,j=0;i<=id3;i++)
	{
	//	printf("%d ",ay[i]);
		while(j<id2&&bx[j+1]<=ay[i]) j++;
		if(j<=id2&&bx[j+1]>ay[i])
		{
			ans++,j++;
			bx[j]=0;
		}
	}
	printf("%d",ans);
	return 0;
}
/*
3
1500 -1800 -1500
-1600 1900 -1700
*/

T3 最小生成树

https://gxyzoj.com/d/hzoj/p/3644

根据菊花图的情况,可以看出边权和最小为n-1,从题目可以看出,它满足小根堆性质,所以从小到大每次加点时,新点永远在叶子,再看回边权,因为每条边的权值都是1,所以两端的权值互质,所以答案就是:

\[ans=\prod_{i=2}^n \varphi(i) \]

本蒟蒻没有想到欧拉函数的做法,浅附一份\(O(n\sqrt n)\)的容斥做法吧

#include<cstdio>
#define ll long long
using namespace std;
const int mod=1e8+7,N=20000;
int n,p[N+5],m,vis[N+5],num[N+5],cnt[N+5];
ll ans=1;
void prime()
{
	for(int i=2;i<=N;i++)
	{
		if(!vis[i])
		{
			p[++m]=i;
			num[i]=1;
		}
		//printf("%d",i);
		for(int j=1;i*p[j]<=N&&j<=m;j++)
		{
			if(i%p[j]!=0&&vis[i]!=2)
			{
				vis[i*p[j]]=1;
				num[i*p[j]]=num[i]+1;
			} 
			else vis[i*p[j]]=2;
			if(i%p[j]==0) break;
		}
	}
}
int main()
{
	prime();
	scanf("%d",&n);
	for(int i=2;i<=n;i++)
	{
		int tmp=0;
		for(int j=2;j*j<=i;j++)
		{
			if(i%j==0)
			{
				if(vis[j]!=2)
				{
					if(num[j]%2) tmp+=cnt[j];
					else tmp-=cnt[j];
				}
				cnt[j]++;
			}
			if(i%j==0&&j!=(i/j))
			{
				if(vis[i/j]!=2)
				{
					if(num[i/j]%2) tmp+=cnt[i/j];
					else tmp-=cnt[i/j];
				}
				cnt[i/j]++;
			}
		}
		cnt[i]++;
	//	for(int j=1;j<=n;j++)
	//	{
	//		printf("%d ",cnt[j]);
	//	}
	//	printf("\n");
		ans=ans*(i-tmp-1)%mod;
//		printf("%d %d\n",i,tmp);
	}
	printf("%d",ans);
	return 0;
}

T4 买汽水

https://gxyzoj.com/d/hzoj/p/3645

折半搜索,前20个和后20个都搜1遍,统计情况,再用双指针统计答案

代码:

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,b[2],a[2][25],id[2],ans[2][2000005],res;
void dfs(int i,int x,int t)
{
	if(t>m) return;
	if(x==b[i]+1)
	{
		res=max(res,t);
		ans[i][++id[i]]=t;
		return;
	}
	dfs(i,x+1,t);
	dfs(i,x+1,t+a[i][x]);
}
int main()
{
	scanf("%d%d",&n,&m);
	b[0]=n/2;
	b[1]=n-b[0];
	for(int i=1;i<=b[0];i++)
	{
		scanf("%d",&a[0][i]);
	}
	for(int i=1;i<=b[1];i++)
	{
		scanf("%d",&a[1][i]); 
	}
	dfs(0,1,0);
//	printf("1");
	dfs(1,1,0);
	sort(ans[0]+1,ans[0]+id[0]+1);
	sort(ans[1]+1,ans[1]+id[1]+1);
	for(int i=id[0],j=0;i>0;i--)
	{
		while(j<id[1]&&ans[0][i]+ans[1][j+1]<=m) j++;
		if(ans[0][i]+ans[1][j]<=m)
		{
			res=max(res,ans[0][i]+ans[1][j]);
		}
	}
	printf("%d",res);
	return 0;
}

标签:总结,比赛,int,20240222,++,ans,include,bx,void
From: https://www.cnblogs.com/wangsiqi2010916/p/18029464

相关文章

  • 20240221比赛总结
    T1排序https://gxyzoj.com/d/hzoj/p/3610根据代数的内容,容易得到:若\(a\geb\gec\ged\),则有\(ab-cd\geac-bd\gead-bc\)所以,只需要前2n个一大一小搭配,后2n个两两搭配,即为答案代码:#include<cstdio>#include<algorithm>#defineullunsignedlonglongusingnamespaces......
  • 读千脑智能笔记13_读后总结与感想兼导读
    1. 基本信息千脑智能AThousandBrains(美)杰夫·霍金斯浙江教育出版社,2022年9月出版1.1. 读薄率书籍总字数287千字,笔记总字数39938字。读薄率39938÷287000≈13.92%1.2. 读厚方向千脑智能脑机穿越未来呼啸而来虚拟人AI3.0新机器人人工不智能:计......
  • ABC341总结
    ABC341总结Score:1825Rank:737F其实按照题意,原图可能有环,但是因为转移有权值限定,转换一下就是DAG,进行拓扑排序。GAK所差最后一题,使用数形结合思想,x轴为数组下标,y轴为值域。题意是给出左端点,右端点任意,求区间平均值最大进行前缀和处理,然后会惊奇的发现,平均数转化成了两点间......
  • 2.22前总结
    2.1[CQOI2011]动态逆序对[HEOI2016/TJOI2016]序列2.2[BZOJ3730]点分树|震波(模板)2.3[ZJOI2015]幻想乡战略游戏2.42.5[HNOI2015]开店[SDOI2011]消耗战2.6考试(270pts,rk1)2.7-2.17替罪羊树2.18-2.19考试+题解2.20[SDOI2015]寻宝游戏2.21-2.22考试+题解总结:做题......
  • 每日总结
    Scala循环有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了更为复杂执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:......
  • 2.21+2.22考试总结
    连续两天数组开小,\(D1T1\30+D2T2\60+D2T4\10\),一旦数组开大就\(A\)了\(qwq\)。Day1T1排序题目大意:给出一个长度为\(4n\)的序列\(a\),要求将其配对为\(n\)个四元组\(x_i,y_i,z_i,w_i\),求\(\max\sum\limits_{i=1}^n|x_iy_i-z_iw_i|\)。难度:三星(满分十星)发现绝......
  • abc341比赛总结
    写在开头\(2024\)年\(2\)月\(17\)日,本蒟蒻参加了平生第一场国外OJ的比赛:\(AtCoder\)\(Beginner\)\(Contest\)\(341\)。题目只有英文和日文的,显然,对于我来说,看题目都成了一个问题,所以比赛结果自然不怎么理想。各题作答情况请广大读者根据我的做题顺序依次来看各题分析......
  • 李宏毅《机器学习》总结 - RL
    引入给一张动物的图片,分辨是什么动物。这个问题可以用CNN解决(HW3)。核心是通过有标注(label)的图片进行学习。而在下围棋时,如何落子是一个难以标注的问题,但是机器可以学到什么是好的,什么是不好的。这就是强化学习的适用场景。结构总的目标是想找一个Actor(或称policy),环境(envir......
  • 正则表达式常用,自我总结
    经典实例:[1]+$由26个字母组成的字符串[2]+$由26个字母和0到9数字组成的字符串^-?\d+$整数形式字符串(复数前面有"-"号)[3][1-9][0-9]$正整数形式字符串[1-9]\d{5}中......
  • 2023年总结
    2023年:1.工作在狗东,晋升T8级别。2.在技术架构团队,一直在一线。3.输出了5+个工具或者框架,交易团队多少都有在用,输出文档N篇,内网居多,再也没有用一周写一遍像样的文章了(比较忙)。4.大部分业余时间贡献给了中医(线上性能调优搞的有点麻木了,想冲击一下人类最高智慧,颇难,2023共看了......