首页 > 编程语言 >怎么循环判断这个程序啊(求助)

怎么循环判断这个程序啊(求助)

时间:2024-08-28 20:54:34浏览次数:14  
标签:int 小组 程序 求助 循环 访谈 测试用例 奶牛 干草

题目背景

时/空限制:1s / 64MB

题目描述

农夫约翰有一项重要的任务——弄清楚要为他的奶牛们购买什么类型的干草。

农夫约翰的 N 头奶牛编号为 1 到 N ,每头奶牛喜欢恰好一种类型的干草 hi 。

他希望他的所有奶牛都喜欢同一种干草。

为了实现这一目标,农夫约翰可以主持焦点小组访谈。

每一次焦点小组访谈,约翰都可以自由选择任意多个连续编号的奶牛构成访谈小组,共同参加访谈。

如果有一种干草是小组中超过一半的奶牛喜欢的,则此次焦点小组访谈结束后,组内所有奶牛最终都会喜欢这种干草。

如果不存在这样的干草,那么奶牛们就不会改变她们喜欢的干草类型。

例如,在由 16 头奶牛组成的焦点小组访谈中,需要有其中 9 头或更多的奶牛具有相同的干草喜好,才能使其余奶牛改变其喜好以与之一致。

农夫约翰想知道哪些类型的干草有可能变为同时受到所有奶牛的喜爱。

他一次只能主持一个焦点小组访谈,但为了使所有奶牛都喜欢同一类型的干草,他可以根据需要任意多次地主持焦点小组访谈。

输入格式

输入的第一行包含一个整数 T ,为独立的测试用例的数量。

每一个测试用例的第一行包含 N 。

第二行包含 N 个整数,为奶牛们喜爱的干草类型 hi 。

输出格式

输出 T 行,对于每个测试用例输出一行。

如果可能使所有奶牛同时喜欢同一种干草,则以升序输出所有可能的此类干草的类型,否则输出 -1。

在同一行内输出一列整数时,相邻的数用空格分隔,并确保行末没有多余空格。

输入输出样例

输入 #1复制

5
5
1 2 2 2 3
6
1 2 3 1 2 3
6
1 1 1 2 2 2
3
3 2 3
2
2 1

输出 #1复制

2
-1
1 2
3
-1

说明/提示

数据范围
1≤T≤10 ,
2≤N≤10^5 ,
1≤hi≤N ,
输入保证同一测试点内所有测试用例的 N 之和不超过 2⋅10^5 。
样例解释
在输入样例中,有 5 个测试用例。

在第一个测试用例中,仅可能使所有奶牛喜欢种类 2 。约翰可以通过主持一次所有奶牛的焦点小组访谈达到这一目的。

在第二个测试用例中,可以证明没有奶牛会改变她们喜爱的干草种类。

在第三个测试用例中,有可能使所有奶牛喜欢种类 1 ,可以通过主持三次焦点小组访谈达到这一目的——首先使奶牛 1 到 4 进行一次焦点小组访谈,随后使奶牛 1 到 5 进行一次焦点小组访谈,随后使奶牛 1 到 6 进行一次焦点小组访谈。以类似的逻辑,依次操作奶牛 3 到 6 ,随后是奶牛 2 到 6 ,随后是奶牛 1 到 6 ,我们可以使所有奶牛喜欢种类 2 。

在第四个测试用例中,有可能使所有奶牛喜欢种类 3 ,可以通过主持一次所有奶牛的焦点小组访谈达到这一目的。

在第五个测试用例中,可以证明没有奶牛会改变她们喜爱的干草种类。

ε=(´ο`*)))唉,各位代码高手帮我想一下怎么改!(必关)

#include <bits/stdc++.h>
using namespace std;
int n[100];
int t, m;
int main() {
	cin >> t >> m;
	int i = 0;
	while (i < m) {
		cin >> n[i];
		i++;
	}
	int k[100] = {0};
		for (int i = 0; i < m; i++) {
			int count = 1;
			for (int j = 0; j < m; j++) {
				if (j != i && n[i] == n[j])
					count++;
			}
			k[i] = count;
		}
		int max = 0;
		for (int i = 0; i < m; i++) {
			if (k[i] > max) {
				max = k[i];
			}
		}
		int  p[1000] = {0};
		int j = 0;
		for (int i = 0; i < m; i++) {
			if (max == k[i]) {
				p[j] = i;
				j++;
			}
		}
		int min = n[p[0]];
		for (int i = 0; i < j; i++) {
			if (n[p[i]] < min)
				min = -1;
		}
		cout << min << endl;
	return 0;
}

标签:int,小组,程序,求助,循环,访谈,测试用例,奶牛,干草
From: https://blog.csdn.net/2401_86356836/article/details/141649751

相关文章

  • 基于python+flask框架的轮滑鞋销售网站(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着运动休闲文化的兴起和人们对健康生活方式的追求,轮滑运动作为一种集健身、娱乐、竞技于一体的活动,逐渐受到广大青少年的喜爱。轮滑鞋作......
  • 基于python+flask框架的校园招聘管理信息系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业市场的日益竞争激烈,校园招聘已成为连接毕业生与用人单位的重要桥梁。然而,传统的校园招聘流程繁琐、信息不对称、......
  • 基于python+flask框架的校园访客预约管理系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着校园安全意识的不断提升和管理需求的日益复杂,传统的访客管理模式已难以满足现代化校园的安全管理要求。传统的访客登记往往依赖于纸质......
  • P1955 [NOI2015] 程序自动分析
    算法1(离散化+并查集)没想到的点:由于数据范围很大1e9,因此需要采用离散化,从而降低时间复杂度主要思想1.约束条件有相等/不相等,不难发现,相等的约束条件是属于一个集合的--因此需要用到并查集思想我们按照e的大小进行排序,从而完成先处理e=1的所有情况3.并查集:初始化:一......
  • [Azure Application Insights]Azure应用程序见解概述页面中workspace的link不见了?
    问题描述在AzureApplicationInsights的概述页面中,可以直接点击WorkspaceLink进入到Workspace资源页面。但是,在下面的示例图中,WorkspaceLink不见了?这是什么原因呢? 问题解答这是因为Workspace的资源组发生了改变。ApplicationInsights无法根据WorksapceResour......
  • 基于python+flask框架的学生信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育信息化的不断深入,学生信息管理已成为高校日常管理中不可或缺的一环。传统的手工管理方式不仅效率低下,且难以保证数据的准确性和时......
  • 基于python+flask框架的汽车配件销售系统设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车工业的快速发展和汽车保有量的持续增长,汽车配件市场迎来了前所未有的发展机遇。然而,传统的汽车配件销售方式往往存在信息不对称、......
  • 【CUDA编程笔记】如何使用CUDA统一内存来优化多进程多线程程序的性能?
    如何使用CUDA统一内存来优化多进程多线程程序的性能?要使用CUDA统一内存优化多进程多线程程序的性能,可以采取以下步骤。理解统一内存统一内存是CUDA编程模型的一个组件,它定义了一个所有处理器都可访问的单一连贯内存映像,允许数据在CPU和GPU之间透明迁移,无需显式复制。使......
  • Linux监控&性能调优分析-perf(中)监控应用程序性能及剖析内存访问
    5用perf调查繁忙的CPU在调查系统性能问题时,可以使用perf工具来识别和监控最繁忙的CPU,以便集中精力。5.1用perfstat显示哪些CPU事件被计数通过禁用CPU计数聚合,您可以使用perfstat显示哪些CPU事件被计数。要使用此功能,必须使用-a标志在全系统模式下统计事件。#p......
  • 计算机毕业设计django+vue小区物业管理系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快,小区作为城市生活的基本单元,其物业管理水平直接影响着居民的生活质量和社会和谐。传统的小区物业管理方式往往依赖于......