洛谷每日三题之第五天

目录

P1321 单词覆盖还原

题目描述

输入格式

输出格式

输入输出样例

说明/提示

 P1271 【深基9.例1】选举学生会

题目描述

输入格式

输出格式

输入输出样例

P1059 [NOIP2006 普及组] 明明的随机数

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P1321 单词覆盖还原

题目描述

一个长度为 ll 的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy 几个 girl

输入格式

一行被被反复贴有 boy 和 girl 两单词的字符串。

输出格式

两行,两个整数。第一行为 boy 的个数,第二行为 girl 的个数。

输入输出样例

输入 #1复制

......boyogirlyy......girl.......

输出 #1复制

4
2

说明/提示

数据保证,3\le l\le2553≤l≤255,字符串仅仅包含如下字符:\texttt{.bgilory}.bgilory。

# include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin>>s;
	int blp=-1;
	int count0=0;
	int count1=0;
	for(int i=0;i<s.length();i++)
	{
		if (s[i]=='b'||s[i+1]=='o'||s[i+2]=='y')
		{
			count0++;
		}
		if (s[i]=='g'||s[i+1]=='i'||s[i+2]=='r'||s[i+3]=='l')
		{
			count1++;
		}
	}
	
cout<<count0<<endl<<count1;
	
	
}

 P1271 【深基9.例1】选举学生会

题目描述

学校正在选举学生会成员,有 n(n\le 999)n(n≤999) 名候选人,每名候选人编号分别从 1 到 nn,现在收集到了 m(m<=2000000)m(m<=2000000) 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。

输入格式

输入 nn 和 mm 以及 mm 个选票上的数字。

输出格式

求出排序后的选票编号。

输入输出样例

输入 #1复制

5 10
2 5 2 2 5 2 2 2 1 2

输出 #1复制

1 2 2 2 2 2 2 2 5 5
# include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	int a[m];
	for(int i=0;i<m;i++)
	{
		cin>>a[i];
	}
	sort(a,a+m);
	for(int i=0;i<m;i++)
	{
		cout<<a[i]<<" ";
	}
 } 

P1059 [NOIP2006 普及组] 明明的随机数

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 NN 个 11 到 10001000 之间的随机整数 (N\leq100)(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入格式

输入有两行,第 11 行为 11 个正整数,表示所生成的随机数的个数 NN。

第 22 行有 NN 个用空格隔开的正整数,为所产生的随机数。

输出格式

输出也是两行,第 11 行为 11 个正整数 MM,表示不相同的随机数的个数。

第 22 行为 MM 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

输入输出样例

输入 #1复制

10
20 40 32 67 40 20 89 300 400 15

输出 #1复制

8
15 20 32 40 67 89 300 400

说明/提示

NOIP 2006 普及组 第一题

# include <stdio.h>
# include <stdlib.h>
//int cmp(int *x, int *y) {
//    return *x - *y;
//}
int comp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
	int n;scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)
	{
	scanf("%d",&a[i]);
//		a[i]=rand()%1000+1;
	//	printf("%d ",a[i]);
	}
	
	//int count=0;
   qsort(a,n,sizeof(int),comp); 
//   for(int i=0;i<n;i++)
//   {
//   	printf("%d ",a[i]);
//   }
int b[n];
int j=0;
   for(int i=1;i<n;i++)
	{
		if(a[i]==a[i-1])
		{
			continue;
		}
		b[j]=a[i-1];
		j++;
	}
	if(a[n-1]!=a[n-2])
	{
		b[j]=a[n-1];
		j++;
	}
	printf("%d\n",j);
	for(int i=0;i<j;i++)
	{
		printf("%d ",b[i]);	
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/m0_61469860/article/details/125826065