首页 > 其他分享 >河南工大2024新生周赛(3)——命题人:张宏泽

河南工大2024新生周赛(3)——命题人:张宏泽

时间:2024-11-12 22:19:44浏览次数:1  
标签:周赛 return int scanf 2024 张宏泽 solve include void

A. 这是一道签到题

题目的背景是基于简单的博弈论Nim游戏,但细心者可以发现小明和小美的名字的首字母一致,所以只需要进行读入,直接输出"XM"即可通过本题

#include<stdio.h>

int n, x;

void solve()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &x);

	puts("XM");
}

int main()
{
	int T = 1;
	scanf("%d", &T);
	while (T--) solve();

	return 0;
}

B. ACMer

判断每一组中1的个数是否大于2,如果大于2,则数量加一

#include<stdio.h>

int n, x, cnt = 0;

void solve()
{
	int sum = 0;
	for (int i = 0; i < 3; i++)   // 读入三个数字
	{
		scanf("%d", &x);
		sum += x;
	}

	if (sum >= 2) cnt++;
}

int main()
{
	int T;
	scanf("%d", &T);
	while (T--) solve();

	printf("%d\n", cnt);

	return 0;
}

C. Stock Exchange(Easy Version)

观察题目我们发现数据的范围非常的小,1 ≤ n ≤ 2000,因此我们可以采取时间复杂度为 \(O(n^2)\) 的算法,也就是暴力的枚举每一个区间,寻找哪一对天数的股票价值的差最大。

#include<iostream>

const int N = 2010;

int n, a[N];

int max(int a, int b)   // 比较 a b 大小并返回最大值的函数
{
	return a >= b ? a : b;
}

void solve()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);

	int ans = 0;
	for (int i = 1; i <= n; i++)
		for (int j = i + 1; j <= n; j++)
		{
			ans = max(ans, a[j] - a[i]);
		}

	printf("%d\n", ans);
}

int main()
{
	int T = 1;
	while (T--) solve();

	return 0;
}

D. Stock Exchange(Hard Version)

观察题目我们发现n的数据范围非常的大,因此我们不能再使用时间复杂度为\(O(n^2)\)的算法,而只能使用时间复杂度为\(O(n)\)或者\(O(n logn)\)的算法。
而对于本题我们想到贪心,在一次遍历的过程中动态地修改最小值,并计算最大值。

#include<iostream>

const int N = 1e6 + 10;

int n, a[N];

int min(int a, int b)
{
	return a >= b ? b : a;
}
int max(int a, int b)
{
	return a >= b ? a : b;
}

int main()
{
	scanf("%d", &n);

	int Min = 1e9, ans = 0;

	for (int i = 1; i <= n; i++) 
	{
		scanf("%d", &a[i]);
		Min = min(Min, a[i]);
		ans = max(ans, a[i] - Min);
	}

	printf("%d", ans);

	return 0;
}

E. /\

没啥好说的,注意转义字符 \

#include<stdio.h>

int main()
{
	printf("/\\");

	return 0;
}

F. BOX

简单的几何问题,如果给定点的三个坐标值都在长方体的三个坐标值确定的范围之内,则该点在盒子中。

#include<stdio.h>

class Point    // 笔者写几何类题目的时候比较喜欢定义一个类 Point 表示点
{
public:
	int x, y, z;
	void read() { scanf("%d%d%d", &x, &y, &z); }  // 定义一个函数使得读入更方便 
};

int z0, h, u0, v0, u1, v1;

int min(int a, int b)
{
	return a > b ? b : a;
}
int max(int a, int b)
{
	return a > b ? a : b;
}

bool check(Point p)
{
	if (p.z >= z0 && p.z <= z0 + h
		&& p.x >= min(u0, u1) && p.x <= max(u0, u1)
		&& p.y >= min(v0, v1) && p.y <= max(v0, v1))
		return 1;

	return 0;
}

void solve()
{
	scanf("%d%d%d%d%d%d", &z0, &h, &u0, &v0, &u1, &v1);

	int q;
	scanf("%d", &q);

	while (q--)
	{
		Point p;
		p.read();   // 读入点的坐标;

		puts(check(p) ? "YES" : "NO");   // 如果满足在盒子内部则输出"YES"
		// 这里的语法可能用的比较繁琐,能理解就行
	}
}

int main()
{
	int T = 1;
	while (T--) solve();

	return 0;
}

G. 数学考试

思维题。

  • 首先要能发现,当\(n\),\(m\)是偶数时,即可以一半 \(1\) 为正数,一半 \(1\) 的负数,组内消化掉。

  • 当 \(n\) 是奇数时,即当 \(1\) 的个数是奇数的时,显然 \(n - 1\) 是偶数,那么 必然能把 \(n - 1\) 个 \(1\) 分成 \((n - 1) / 2\) 组,那么每组中的两个 \(1\), 一个前面是 "+" ,一个前面是 "-" ,则一定可以把 \(n - 1\) 个 \(1\) 抵消掉,无论 \(2\) 有多少个,也无法与最后剩下的那个奇数 \(1\) 相消,得证:当 \(n\) 为奇数是, 一定无法使数组之和等于 \(0\)。

  • 当 \(2\) 的个数\(m\)是奇数时,当且仅当 \(1\) 的个数为偶数,且 \(1\) 个数不为 \(0\) 才可以存在两个 \(1\) 和多出来的那个 \(2\) 相消。

而除此之外的所有情况都存在一种可能性使得数组的元素之和等于 \(0\).

#include<stdio.h>

void solve()
{
    int n, m;
    scanf("%d%d", &n, &m);

    if (n & 1)   // 判断是奇数
    {
        puts("NO");
        return;
    }
    if (m % 2 && !n)   // n == 0 而且 m 是奇数
    {
        puts("NO");
        return;
    }

    puts("YES");
}

int main()
{
    int T;
    scanf("%d", &T);
    while (T--) solve();

    return 0;
}

H. 200个数字

首先想到使用数组 cnt[i] 记录 数字i 出现的个数。
其次我们发现数字i可能是负数,那么增加一个偏移量就行了,譬如 偏移量 C = 110,那么此时 cnt[10] 记录就是 -100 出现的个数 计算公式如 -100 + C = 10;
此时从高向低遍历一遍,找到出现次数最多的数字,由于从高向低遍历,则一定满足该数字是出现次数一样多的数字里面的最大的。

#include<stdio.h>

const int C = 110; // 偏移量

int cnt[400], n;

void solve()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        int x;
        scanf("%d", &x);
        cnt[x + C]++;
    }

    int Max = 0, ans = -1e9;
    for (int i = -100 + C; i <= 100 + C; i++)
    {
        if (Max <= cnt[i])
        {
            Max = cnt[i];
            ans = i - C;
        }
    }

    printf("%d\n", ans);
}

int main()
{
    int T = 1;
    while (T--) solve();

    return 0;
}

标签:周赛,return,int,scanf,2024,张宏泽,solve,include,void
From: https://www.cnblogs.com/hautacm/p/18542784

相关文章

  • 【大语言模型】ACL2024论文-09 无监督信息精细化训练用于增强大型语言模型的检索增强
    【大语言模型】ACL2024论文-09无监督信息精细化训练用于增强大型语言模型的检索增强生成目录文章目录【大语言模型】ACL2024论文-09无监督信息精细化训练用于增强大型语言模型的检索增强生成目录1.论文信息2.摘要3.研究背景4.问题与挑战5.如何解决6.创新点7.......
  • CCPC(2024年中国大学生程序设计竞赛女生专场)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 盒子(2024年中国大学生程序设计竞赛女生专场)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 2024大模型典型示范应用案例集——附219页PDF
    2024年是大模型深入赋能千行百业,融入实体经济,助力科技创新的一年。截至今年5月,我国国产大模型的数量已经超过300个,预示着大模型在各行业场景的创新应用和深度拓展,对培育新质生产力、高水平赋能新型工业化、推动高质量发展发挥了重要作用。今年,国务院政府工作报告首次提出......
  • 多校A层冲刺NOIP2024模拟赛21
    以为150要垫底了,没想到还有高手。送信卒签,没一会就写完但因为交的太晚被猫娘抢了首A。恼火。简要题意给一个\(n\timesm(n,m\le100)\)的网格图,左右走的代价为\(1\),上下走的代价为\(k\),求最小的\(k\),使得\((sx,sy)\)到\((tx,ty)\)的代价恰好为\(s(s\le10^5)\)。数据保证有解......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛21
    Rank别样的,不好评价,烂完了A.送信卒签,我是唐氏。为什么呢题目没给最短路的定义,我赛时觉得最短路就是最短路径,于是直接bfs一遍随便加个check就做完了。当然过得那遍按我的思路来说是错的,然后我也发现了这一点,然后就改了,然后就WA了。总结:错误思路的错解是正确思路......
  • 2024年最新优化算法:海市蜃楼算法(Fata Morgana Algorithm ,FATA)介绍
    海市蜃楼算法(FataMorganaAlgorithm,FATA)是2024年提出一种新型的群体智能优化算法,它的设计灵感来源于自然现象中的海市蜃楼形成过程。FATA算法通过模仿光线在不均匀介质中的传播方式,提出了两种核心策略——海市蜃楼光过滤原则(MLF)和光传播策略(LPS)——来优化搜索过程,增强算法......
  • 多校A层冲刺NOIP2024模拟赛21
    多校A层冲刺NOIP2024模拟赛21\(T1\)A.送信卒\(90pts/100pts\)部分分\(90pts\)设最后的可能的最短路中左右共移动了\(d\)次,上下共移动了\(x\)次。则等价于求\(\min\{x_{i}k+d_{i}\}=s\)的解,观察到\(d\in[0,\min(\left\lceil\frac{nm}{2}\right\rce......
  • CSP-S 2024 游记
    坐标HB,时隔半年又来华科考试了。13:40左右到了考场,我以为自己算是到的比较早的,但是发现其实大部分人已经到了,不过进了考场之后机子也是被禁用的,好像也不亏。遇到了一些之前的同学,已经是半退役状态的,说是过来玩一下?14:10左右解了电脑的锁屏,稍微调了一下配置。发现键盘比较一般,......
  • [20241110]使用xto10.sql脚本遇到的问题.txt
    [20241110]使用xto10.sql脚本遇到的问题.txt--//自己在使用xto10.sql脚本时,输入参数错误,我没有想到竟然执行有结果,例子:SYS@book>@xto10d5f8b30410BASE10                        BASE10----------------------------------------------------------......