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