• 洛谷刷题C语言:PET、KEMIJA、PROSJEK、KORNISLAV、RESETO


    记录洛谷刷题QAQ


    一、[COCI2008-2009#3] PET

    题目描述

    在一项受欢迎的比赛 Dinner for Five 中,有 5 5 5 名选手和 4 4 4 名裁判,这 4 4 4 个裁判会对每一道菜用 1 ∼ 5 1 \sim 5 15 的数字进行评估,每位选手的总分即是所有裁判评分的总和,参赛者按照其评分顺序从 1 1 1 5 5 5 进行编号。

    请你编写一个程序,输出评分最高的选手的编号以及其分数。

    输入格式

    输入共 5 5 5 行,每一行有 4 4 4 个正整数,表示每位裁判对第 i i i 位选手的评分。

    输入数据将确保胜者是唯一的。

    输出格式

    输出仅 1 1 1 行,有 2 2 2 个正整数,中间有一个空格,分别表示评分最高的选手以及其分数。

    样例 #1

    样例输入 #1

    5 4 4 5
    5 4 4 4
    5 5 4 4
    5 5 5 4
    4 4 4 5
    
    • 1
    • 2
    • 3
    • 4
    • 5

    样例输出 #1

    4 19
    
    • 1

    样例 #2

    样例输入 #2

    4 4 3 3
    5 4 3 5
    5 5 2 4
    5 5 5 1
    4 4 4 4
    
    • 1
    • 2
    • 3
    • 4
    • 5

    样例输出 #2

    2 17
    
    • 1

    提示

    说明

    题目译自 COCI2008-2009 CONTEST #3 T1 PET

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int max = 0;
    	int num = 0;
    	for(int i = 1;i <= 5;i++)
    	{
    		int a, b, c, d;
    		scanf("%d%d%d%d",&a,&b,&c,&d); 
    		if(a + b+c+d > max)
    		{
    			num = i;
    			max = a+b+c+d;
    		}
    	}
    	printf("%d %d\n",num,max);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    二、[COCI2008-2009#3] KEMIJA

    题目背景

    Luka 天天上课走神。

    题目描述

    Luka 又在化学课上鬼混了!他不是在写平衡方程,而是在写一句奇怪的话。

    Luka 通过在每一个元音字母( a \texttt{a} a e \texttt{e} e i \texttt{i} i o \texttt{o} o u \texttt{u} u)后面加上 p \texttt{p} p 再加上原来的元音字母的方式加密这一个单词,如 kemija \texttt{kemija} kemija 变成 kepemipijapa \texttt{kepemipijapa} kepemipijapa paprika \texttt{paprika} paprika 变成 papapripikapa \texttt{papapripikapa} papapripikapa

    老师想知道调皮的 Luka 写了些什么,请你帮助老师,写出一个解密程序。

    输入格式

    一行一个字符串 s s s,表示加密后的句子,数据保证不会有前导空格与尾随空格,但句子中间可能出现空格。

    输出格式

    一行一个字符串,表示解密后的句子。

    样例 #1

    样例输入 #1

    zepelepenapa papapripikapa
    
    • 1

    样例输出 #1

    zelena paprika
    
    • 1

    样例 #2

    样例输入 #2

    bapas jepe doposapadnapa opovapa kepemipijapa
    
    • 1

    样例输出 #2

    bas je dosadna ova kemija
    
    • 1

    提示

    数据范围

    ∣ s ∣ |s| s s s s 的长度,则 1 ≤ ∣ s ∣ ≤ 100 1 \leq |s| \leq 100 1s100,数据保证字符串的内容一定是小写字母或空格。

    说明

    题目译自 COCI2008-2009 CONTEST #3 T2 KEMIJA

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	char num[1001];
    //	scanf("%s",&num);
    	gets(num);
    	int len = strlen(num);
    	for(int i = 0;i < len;i++)
    	{
    		if(num[i] == 'a'||num[i] == 'e'||num[i] == 'i'||num[i] == 'o'||num[i] == 'u')
    		{
    				num[i+2] = '0';
    				num[i+1] = '0';
    			
    		}
    		
    	}
    	for(int i = 0;i < len;i++)
    	{
    		if(num[i] != '0')
    		{
    			printf("%c",num[i]); 
    		}
    		
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    三、[COCI2014-2015#1] PROSJEK

    题目描述

    有一个数列 a a a,现在按照下列公式求出一个数列 b b b

    b i = ∑ j = 1 i a j i b_i=\frac{ \sum^i_{j=1} a_j }{i} bi=ij=1iaj

    给你数列 b b b,请求出数列 a a a

    输入格式

    第一行一个整数 n n n ,表示数列 b b b 的长度。

    接下来一行 n n n 个整数,表示数列 b b b

    输出格式

    一行 n n n 个整数,表示数列 a a a

    样例 #1

    样例输入 #1

    1
    2
    
    • 1
    • 2

    样例输出 #1

    2
    
    • 1

    样例 #2

    样例输入 #2

    4
    3 2 3 5
    
    • 1
    • 2

    样例输出 #2

    3 1 5 11
    
    • 1

    样例 #3

    样例输入 #3

    5
    1 2 2 3 4
    
    • 1
    • 2

    样例输出 #3

    1 3 2 6 8
    
    • 1

    提示

    样例输入输出 3 解释

    当数列 a = 1 , 3 , 2 , 6 , 8 a=1,3,2,6,8 a=1,3,2,6,8 时,数列 b = 1 1 , 1 + 3 2 , 1 + 3 + 2 3 , 1 + 3 + 2 + 6 4 , 1 + 3 + 2 + 6 + 8 5 b=\frac{1}{1},\frac{1+3}{2},\frac{1+3+2}{3},\frac{1+3+2+6}{4},\frac{1+3+2+6+8}{5} b=11,21+3,31+3+2,41+3+2+6,51+3+2+6+8,即 b = 1 , 2 , 2 , 3 , 4 b=1,2,2,3,4 b=1,2,2,3,4

    数据规模与约定

    对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 100 1\le n\le 100 1n100 1 ≤ a i , b i ≤ 1 0 9 1\le a_i,b_i\le 10^9 1ai,bi109

    说明

    本题总分 50 50 50 分。

    本题译自 Croatian Open Competition in Informatics 2014/2015 Contest #1 T1 PROSJEK。

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int num[n+1];
    	for(int i = 1;i <= n;i++)
    	{
    		scanf("%d",&num[i]);
    	}
    	
    	int NUM[n+1];
    	for(int i = 1;i <= n;i++)
    	{
    		
    		NUM[i] = i*num[i];
    		for(int j = 1;j < i;j++)
    		{
    			NUM[i] = NUM[i] -NUM[j];
    		}
    	}
    	
    	
    	for(int i = 1;i <= n;i++)
    	{
    		printf("%d ",NUM[i]);	
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    三、[COCI2008-2009#2] KORNISLAV

    题目描述

    乌龟 Kornislav 从来没有什么有趣的事。 由于他将生活三百年,他一直在努力寻找消磨时间的方法。 这个周末,他开始玩“面积最大的矩形”这个游戏。
    首先,Kornislav 需要四个正整数。他通过向一个方向移动,旋转 90 ° 90° 90° ,在新方向上行走等方式来形成一个图案。Kornislav 总共进行了三个 90 ° 90° 90° 旋转,并走过了四条线段。
    当朝某个方向行走时,他的步数必须等于四个所选整数中的一个,并且每个整数只能成为一条线段的长度。根据 Kornislav 使用这四个整数的顺序,他的步行将形成各种形状,其中也包括一些未封闭的图案。
    编写一个程序,计算出乌龟的行进轨迹可以形成的最大矩形面积。

    输入格式

    一行四个整数 a , b , c , d a,b,c,d a,b,c,d,表示 Kornislav 挑选的四个整数。

    输出格式

    一行一个整数,表示 Kornislav 的行进轨迹所能形成的最大矩形面积。

    样例 #1

    样例输入 #1

    1 2 3 4
    
    • 1

    样例输出 #1

    3
    
    • 1

    样例 #2

    样例输入 #2

    4 4 3 4
    
    • 1

    样例输出 #2

    12
    
    • 1

    提示

    数据规模与约定

    对于 100 % 100\% 100% 的数据,有 1 < a , b , c , d < 100 11<a,b,c,d<100

    说明

    题目译自 COCI2008-2009 CONTEST #2 KORNISLAV,译者 @mnesia

    代码如下

    #include
    #include
    #include
    #include 
    
    int main()
    {
    	int num[4];
    	
    	for(int i= 0;i < 4;i++)
    	{
    		scanf("%d",&num[i]);
    	}
    	for(int i = 0;i < 4;i++)
    	{
    		for(int j = i+1;j < 4;j++)
    		{
    			if(num[i] > num[j])
    			{
    				num[i] = num[i] + num[j];
    				num[j] = num[i] - num[j];
    				num[i] = num[i] - num[j];			}
    		}
    	}
    	
    	int max;
    	max = num[0] * num[2];
    	printf("%d\n",max);
    	
    	
    	
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    五、[COCI2008-2009#2] RESETO

    题目描述

    埃拉托色尼筛法是一种著名的素数筛法,可以查找所有直至 n n n 的素数。该算法的步骤是:

    1. 写下 2 2 2 n n n 之间的所有整数(包括 2 2 2 n n n)。
    2. 找到尚未删除的最小数,并将其命名为 p p p; 则 p p p 是素数。
    3. 划掉 p p p 及其所有尚未划掉的倍数。
    4. 如果尚有数未被划掉,请转到步骤 2 2 2

    编写一个程序,给定 n n n k k k,找出第 k k k 个被删除的整数。

    输入格式

    一行两个整数 n n n k k k,其具体含义请见题目描述。

    输出格式

    一行一个整数,表示第 k k k 个被划掉的整数。

    样例 #1

    样例输入 #1

    7 3
    
    • 1

    样例输出 #1

    6
    
    • 1

    样例 #2

    样例输入 #2

    15 12
    
    • 1

    样例输出 #2

    7
    
    • 1

    样例 #3

    样例输入 #3

    10 7
    
    • 1

    样例输出 #3

    9
    
    • 1

    提示

    数据规模与约定

    对于 100 % 100\% 100% 的数据,有 2 ≤ k < n ≤ 1000 2 \leq k < n \leq 1000 2k<n1000

    说明

    题目译自 COCI2008-2009 CONTEST #2 RESETO,译者 @mnesia

    代码如下

    #include
    #include
    #include
    #include 
    
    int p[2000]; //是否是素数,一开始全部设为0. 
    int main(){
    	int n,k;
    	scanf("%d%d",&n,&k);
    	int t[2000]; //被划掉的数。 
    	int s=1;  
    	for(int i=2;i<=n;i++){
    		if(p[i]==0){ //如果这个数是素数。 
    			for(int j=i;j<=n;j+=i){ //由于这个素数本身也要划掉,所以从i开始。 
    				if(p[j]==1) continue; //为了避免重复计算,需要特判。 
    				p[j]=1; //这个数是合数。 
    				t[s++]=j;
    			}
    		}
    	}
    	printf("%d",t[k]);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    报错ssh: Could not resolve hostname
    Android 使用.9图 NinePatchDrawable实现动态聊天气泡
    docker启动mysql服务
    volatile如何保证可见性
    vue--2.方法、事件绑定、样式绑定、条件渲染和循环渲染
    LeetCode //C - 108. Convert Sorted Array to Binary Search Tree
    立体视觉四十二章经第01章:世界坐标系及不同坐标系的转换
    react中预览excel表格
    【MySQL】 MySQL表的增删改查(基础)
    鸿蒙操作系统 HarmonyOS 3.2 API 9 Stage模型通过ArkTS接入高德地图
  • 原文地址:https://blog.csdn.net/weixin_62529383/article/details/126217100