目录
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;
}