首页 > 其他分享 >高一高考集训欢乐赛

高一高考集训欢乐赛

时间:2024-06-12 14:54:23浏览次数:12  
标签:zl dh int 高考 高一 else ans 集训 fo

大石碎胸口——万能青年旅店
久违的头图

image

渔王还想 继续做渔王
而海港已经 不知去向
此刻他醉倒 在洗浴中心
没有潮汐的梦
胸口已暮色苍茫
肥胖的城市 递给他一个
传统的方法 来克制恐慌
卖掉武器 风暴喉咙
换取饮食
背叛能让你获得自由
停电之后 暂时摆脱了
坚硬的时刻 倒转的河
肥胖的城市
驱赶着所有 拒绝沉没的人
那首疯狂的歌又响起
电灯熄灭 物换星移 泥牛入海
黑暗好像 一颗巨石 按在胸口
独脚大盗 百万富翁 摸爬滚打
黑暗好像 一颗巨石 按在胸口

高一高考集训欢乐赛

少有的 IOI 赛制。

雀食唐氏,和名字一样。

赛时榜

image

T1 Efim与奇怪的成绩

模拟。

只是注意几个点:

  1. 只能在小数部分进位;
  2. 输出时不要后缀 \(0\) 和小数点;
  3. 注意在整数部分的进位。

主要思想是,进位的位置越靠前越大,然后轻松在第 3 个小时才打出来,主要是既没大样例又看不到测试点,到了不得不去想那 WA 掉的 15 分时才绞尽脑汁想到整数的进位问题。

code:
namespace Wisadel
{
	short main()
	{
		cin>>n>>m;
		scanf("%s",ss+1);
		while(k<=n&&ss[k]!='.')k++;
		//找到小数点 
		int i=k+1;
		for(;i<=n;)
		{
			if(!m)
				break;
			int num=ss[i]-'0';
			if(num>=5)
			{//能进位就进 
				int pp=i,sds=i;
				while(pp<=n)
					ss[pp++]=0;
				//后面全部不要 
				n=sds;m--;
				//更新现在实数的长度 剩余的次数 
				if(--i==k)
				{//小数部分没了 
				//因为整数部分不可四舍五入 所以无论如何要结束循环 
					ss[i]=0;
					if(ss[i-1]=='9') 
					{//多重进位 
						while(--i>0&&ss[i]=='9')
							ss[i]='0';
						//都变成0 
						if(i==0)
						{//全部都进一 然后没了 也就是整数部分都是9 
							printf("1");
							printf("%s\n",ss+1);
							//把多的1输出来 然后输出后面的0 
							return Ratio;
						}
						else
						{
							ss[i]++;
							printf("%s\n",ss+1);
							//不全是9 直接进位后输出 
							return Ratio;
						}
					}
					else
						ss[--i]++;
					break; 
				}
				else
				{
					ss[i]++;
					i=k+1;
					//没到整数部分,那么从十分位再次循环寻找进位机会 
					continue; 
				}
				
			}
			i++; 
		}
		while(k<=n&&(ss[n]=='0'||ss[n]=='.'))
			ss[n--]=0;
		//去除后缀0和. 
		cout<<ss+1;
		return Ratio;
	}
}

T2 美丽的IP地址

暴搜就行,不过。。。

image

所以仙姑。

T3 装饰

仅有的好切的水题。

感觉下发的题解少有的讲得清楚。就是当三种颜色没有一种特别多(指超过其他两种颜色的 2 倍)时,都可以通过补凑的方法补齐,此时答案为 \(\frac{a+b+c}{2}\) 。

当存在上述一种特别多的颜色时,无论如何补凑都只能达到 \(a+b\) (我们假设 \(a\le b\le c\) ),也就是此时的答案。

注意 long long

code:
namespace Wisadel
{
	void Wmov()
	{
		if(a>b) swap(a,b);
		if(a>c) swap(a,c);
		if(b>c) swap(b,c);
	}
	short main()
	{
		int T=qr;
		while(T--)
		{
			a=qr,b=qr,c=qr;
			Wmov();
			if(a==0&&b==0)
				printf("0\n");
			else if(c>2*(a+b))
				printf("%lld\n",a+b);
			else printf("%lld\n",(a+b+c)/3);
		}
		return Ratio;
	}
}

T4 大子矩阵Largest Submatrix

出生题,搜就完了。

真是醇搜啊,想了单调栈和坐标 dp,最后还真是暴力。

感谢 PEP 提供的借鉴。

code:
namespace Wisadel
{
	bool Wck(int i,int j,int x,int y)
	{
		if(dh[i][j]==dh[x][y]||(dh[i][j]=='a'||dh[i][j]=='b')&&dh[x][y]=='w'||(dh[i][j]=='b'||dh[i][j]=='c')&&dh[x][y]=='x'||(dh[i][j]=='b'||dh[i][j]=='c'||dh[i][j]=='a')&&dh[x][y]=='z'||(dh[i][j]=='c'||dh[i][j]=='a')&&dh[x][y]=='y')return true;
		if(dh[x][y]==dh[i][j]||(dh[x][y]=='a'||dh[x][y]=='b')&&dh[i][j]=='w'||(dh[x][y]=='b'||dh[x][y]=='c')&&dh[i][j]=='x'||(dh[x][y]=='b'||dh[x][y]=='c'||dh[x][y]=='a')&&dh[i][j]=='z'||(dh[x][y]=='c'||dh[x][y]=='a')&&dh[i][j]=='y')return true;
		return false;
	}
	void W(int i,int j)
	{
		ll sumi=1;
		fo(k,j+1,m)
			if(Wck(i,j,i,k))
				sumi++;
			else break;
		ans=max(ans,sumi);
		ll sumj = 1;
		fo(k,i+1,n)
			if(Wck(i,j,k,j))
				sumj++;
			else break;
		ans=max(ans,sumj);
		ll mi=sumi;
		fo(ii,i+1,sumj+i-1)
		{
			ll sum=1;
			fo(jj,j+1,sumi+j-1)
				if(Wck(i,j,ii,jj))
					sum++;
				else break;
			mi=min(mi,sum);
			ans=max(ans,mi*(ii-i+1));
		}
	}
	short main()
	{
		while(scanf("%d%d",&n,&m)!=EOF) 
		{
			memset(dh,0,sizeof dh);
			ans=0;
			fo(i,1,n)
				fo(j,1,m)
					cin>>dh[i][j]; 
			fo(i,1,n)
				fo(j,1,m)
					if(dh[i][j]=='w')
					{
						dh[i][j]='a';W(i,j);
						dh[i][j]='b';W(i,j);
						dh[i][j]='w';
					}
					else if(dh[i][j]=='y')
					{
						dh[i][j]='a';W(i,j);
						dh[i][j]='c';W(i,j);
						dh[i][j]='y';
					}
					else if(dh[i][j]=='z')
					{
						dh[i][j]='a';W(i,j);
						dh[i][j]='b';W(i,j);
						dh[i][j]='c';W(i,j);
						dh[i][j]='z';
					}
					else if(dh[i][j]=='x')
					{
						dh[i][j]='b';W(i,j);
						dh[i][j]='c';W(i,j);
						dh[i][j]='x';
					}
					else
						W(i,j);
			printf("%lld\n",ans);
		}
		return Ratio;
	}
}

T5 中国象棋

有很多转移方程的 dp。

image

雀食像棋。

首先审题,得到一个关键结论:一行或一列中最多只能有两个炮

那么为了确定场上时刻的局势,我们令 \(f_{i,j,k}\) 为转移到第 \(i\) 行,有 \(j\) 列含有一个炮,\(k\) 列含有两个炮,那么可知,\(m-j-k\) 列没有炮。

我们按放炮的方式推。每行最多放两个炮,那么会有三种情况。

一,不放炮,由上一行的情况直接转移。

\[f_{i,j,k}=f_{i-1,j,k} \]

二,放一个炮,那么又会有两种情况,一种是放在没有炮的列上,一种是放在有一个炮的列上。

\[f_{i,j,k}+=f_{i-1,j-1,k}\times (m-j-k+1) \quad(j\ge 1) \]

\[f_{i,j,k}+=f_{i-1,j+1,k-1}\times (j+1) \quad(k\ge 1) \]

三,放两个炮,有三种情况,一是都放在没有炮的列上,二是一个放在有一个炮的列上,另一个放在没有炮的列上,三是两个都放在有一个炮的列上。

\[f_{i,j,k}+=f_{i-1,j-2,k}\times C(m-j-k+2,2) \quad(j\ge 2) \]

\[f_{i,j,k}+=f_{i-1,j,k-1}\times j\times (m-j-k+1) \quad (k\ge 1) \]

\[f_{i,j,k}+=f_{i-1,j+2,k-2}\times C(j+2,2) \quad(k\ge 2) \]

这里 \(C(n,m)\) 为组合数。

边界为 \(f_{0,0,0}=1\),最后答案是\(\sum_{0\le i\le m,0\le j\le m}f_{n,i,j}\pmod {9999973}\)。

注意 long long

code:
namespace Wisadel
{
	int C(int x,int y)
	{
		return ((x*(x-1))/y)%mod;
	}
	short main()
	{
		n=qr,m=qr;
		zl[0][0][0]=1;
		fo(i,1,n)//行 
		//一行最多放两个炮 
			fo(j,0,m)//一个炮列 
				fo(k,0,m-j)//两个炮列 
				{
					zl[i][j][k]=zl[i-1][j][k];//这一行不放炮 
					//两个炮的列++
					if(k>=2)
						zl[i][j][k]+=zl[i-1][j+2][k-2]*C(j+2,2);//在两个1炮列上放 
					if(k>=1)
						zl[i][j][k]+=zl[i-1][j+1][k-1]*(j+1),//在一个1炮列上放 
						zl[i][j][k]+=zl[i-1][j][k-1]*j*(m-j-k+1);//在没有炮的列上放 
					//一个炮的列++ 
					if(j>=1)
						zl[i][j][k]+=zl[i-1][j-1][k]*(m-j-k+1);//放在没炮的列
					if(j>=2) 
						zl[i][j][k]+=zl[i-1][j-2][k]*C(m-j-k+2,2);//放在两个没炮的列 
					zl[i][j][k]%=mod;
				}
		fo(i,0,m)
			fo(j,0,m)
				ans=(ans+zl[n][i][j])%mod;
		printf("%lld\n",(ans+mod)%mod);
		return Ratio;
	}
}

T6 奇妙的 Fibonacci

雀食奇妙,还没有人 AC。


完结撒花~

image

标签:zl,dh,int,高考,高一,else,ans,集训,fo
From: https://www.cnblogs.com/Ratio-Yinyue1007/p/18243184

相关文章

  • M1 高考回忆
    高考回忆​ 已经过去了\(4\)天了,终于才想起要写这个。不得不说,翻过了这座山,还是思绪万千的,尽管心中总是在想“这也没什么大不了”,但是旁观者清,只有投入进去,在那种有天启即将到来的感觉的压迫下依旧能保有如此心态,才是比较难得的。可是我做不到,至少曾经吧。​ 我在高考前百日......
  • 2024 广东省队集训
    5.21试机赛B.朴素计数,写个dp算贡献系数就好了。C.网路流。建边\((s,i_0,C),(i_1,t,C),(i_0,j_1,dis_{i,j})\),跑最大流即可。5.22A.首先分析一下贡献的形式。因为这玩意是凸的,所以我们可以钦定一个选点顺序,优先让第一个最大,其次让第二个最大,以此类推。很容易猜测选的点......
  • 2024年高考作文考人工智能,人工智能写作文能否得高分
    前言众所周知,今年全国一卷考的是人工智能,那么,我们来测试一下,国内几家厉害的人工智能他们的作答情况,以及能取得多少高分呢。由于篇幅有限,我这里只测试一个高考真题,我们这里用百度的文心一言和科大讯飞的讯飞大模型,本测试结果仅供参考,无评价好坏之分。2024高考作文1.1全国甲......
  • 2024年全国高考作文题目汇总
    2024全国高考作文题目汇总新课标I卷阅读下面的材料,根据要求写作。(60分)随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?以上材料引发了你怎样的联想和思考?请写一篇文章。要求:选准角度,确定立意,明确文体,自拟标题;不要套作,不得抄......
  • 2024年高考生的抉择:计算机相关专业是否依然值得选择?
    2024年,计算机相关专业还值得选择吗?随着2024年高考的钟声渐行渐远,数百万高三学生们正忙着擦拭自己那满是压力汗水的额头,并面对人生中的重要抉择:选择大学专业。这可比选择今天中午吃什么难多了!这个决定就像一场巨大的甜品派对,你得在满桌子的蛋糕、布丁和冰淇淋中选一个最不容易......
  • 大一下集训队选拔赛
    rank2还需努力7paoxiaomo不爱DP很简单的一道DP赛时看错数据范围导致陷入思考误区其实只用求每个前缀和对应的答案然后往后合并区间一但有区间和等于pre[i]那么将该区间加入并且计算贡献如果区间和大于pre[i]那么该答案不符合点击查看代码#include<bits/stdc++.h>#de......
  • 2024年新高考2卷精选试题解答
    **(2024年新高考2卷19题)**已知双曲线$C:x^2-y^2=m\(m>0)$,点$P_1(5,4)$在$C$上,$k$为常数,$0<k<1$.按照如下方式依次构造点$P_n\\left(n=2,3,\cdots\right)$:过$P_{n-1}$作斜率为$k$的直线与$C$的左支交于点$Q_{n-1}$,令$P_n$为$Q_{n-1}$关于$y$轴的对称点,记$P_{n}$的坐标......
  • 2024年高考作文题目人工智能,热门AI
    当今社会的发展越来越迅速,人工智能也逐步走进我们的生活,连今年的高考作文题目也是人工智能高考作文:新课标I卷阅读下面的材料,根据要求写作。(60分)随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?以上材料引发了你......
  • 2024年新高考一卷数学第19题答案解析
    题目设\(m\)为正整数,数列\(a_1,a_2,...,a_{4m+2}\)为公差不为\(0\)的等差数列,若从中删去两项\(a_i,a_j(i<j)\)后剩下的\(4m\)项可被分成\(m\)组且每组\(4\)个数都能构成等差数列,则称数列\(a_1,a_2,...,a_{4m+2}\)是\((i,j)\)的一可分数列。写出所有的\((i,j......
  • 高考假+端午 集训
    6.5whk?水本来是今天开始集训的来着但是要去看牙,所以能多待一天......