赞
踩
目录
给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。
时间限制:1000
内存限制:65536
输入
第一行1个整数n、,分别表示序列的长度。(0 < n ≤ 10000) 第二行n个正整数,表示序列里的每一个数,每个数小于等于10000000 第三行2个整数L、R,分别表示区间的左端点,区间的右端点。(1 ≤ L ≤ R ≤ 1000000)
输出
输出一个整数,表示序列中大于等于L且小于等于R的数的个数。
样例输入
5
11 8 1 10 16
1 10
样例输出
3
- #include<iostream>
- using namespace std;
- int l, r;
- int n;
- int a[10005];
- int cnt = 0;
- int main() {
- cin >> n;
- for(int i = 1; i <= n; i++) {
- cin >> a[i];
- }
- cin >> l >> r;
- for(int i = 1; i <= n; i++) {
- if(a[i] >= l && a[i] <= r) {
- cnt++;
- }
- }
- cout << cnt;
- return 0;
- }

在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n(1≤n≤4)天后,细菌在培养皿中的分布情况。
时间限制:10000
内存限制:65536
输入
输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)。
输出
输出九行九列整数矩阵,每行的整数之间用空格分隔。整个矩阵代表n天后细菌在培养皿上的分布情况。
样例输入
2 1
样例输出
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 2 4 2 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
详见代码:
- #include<iostream>
- using namespace std;
- int m, n;
- int a[10][15][15];
- int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
- int dy[8] = {-1, 0, 1, 1, -1, -1, 0, 1};
- int main() {
- cin >> m >> n;
- a[0][5][5] = m;
- for(int i = 1; i <= n; i++) {
- for(int j = 1; j <= 9; j++) {
- for(int k = 1; k <= 9; k++) {
- a[i][j][k] += a[i - 1][j][k] * 2;
- for(int l = 0; l < 8; l++) {
- a[i][j + dx[l]][k + dy[l]] += a[i - 1][j][k];
- }
- }
- }
- }
- for(int i = 1; i <= 9; i++) {
- for(int j = 1; j <= 9; j++) {
- cout << a[n][i][j] << " ";
- }
- cout << endl;
- }
- return 0;
- }

给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。
你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。
"改变矩阵元素"的操作定义为0变成1或者1变成0。
时间限制:1000
内存限制:65536
输入
输入n + 1行,第1行为矩阵的大小n(0 < n < 100),以下n行为矩阵的每一行的元素,元素之间以一个空格分开。
输出
如果矩阵符合条件,则输出OK; 如果矩阵仅改变一个矩阵元素就能符合条件,则输出需要改变的元素所在的行号和列号,以一个空格分开。 如果不符合以上两条,输出Corrupt。
样例输入
样例输入1
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
样例输入2
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1
样例输入3
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1
样例输出
样例输出1
OK
样例输出2
2 3
样例输出3
Corrupt
- #include <bits/stdc++.h>
- using namespace std;
- int a[105][105];
- int n;
- int hang=0,lie=0;
- int h,l;
- int main()
- {
- cin>>n;
- for (int i=1;i<=n;i++)
- {
- for (int j=1;j<=n;j++)
- {
- cin>>a[i][j];
- }
- }
- for (int i=1;i<=n;i++)
- {
- int sumh=0;
- int suml=0;
- for (int j=1;j<=n;j++)
- {
- sumh+=a[i][j];
- suml+=a[j][i];
- }
- if (sumh%2!=0)
- {
- hang++;
- h=i;
- }
- if (suml%2!=0)
- {
- lie++;
- l=i;
- }
- }
- if (hang==0&&lie==0)
- {
- cout<<"OK"<<endl;
- }else if (hang==1&&lie==1)
- {
- cout<<h<<" "<<l<<endl;
- }else
- {
- cout<<"Corrupt"<<endl;
- }
- return 0;
- }

输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)
时间限制:10000
内存限制:65536
输入
一行单词序列(长度小于10000),最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。
输出
按字典序输出这些单词,重复的单词只输出一次。
样例输入
She wants to go to Peking University to study Chinese
样例输出
Chinese
Peking
She
University
go
study
to
wants
- #include <bits/stdc++.h>
- using namespace std;
- string a[105];
- int main()
- {
- int p=0;
- while (cin>>a[p])//循环输入
- {
- p++;
- }
- for (int i=1;i<p;i++)//插入排序
- {
- for (int j=i;j>0;j--)
- {
- if (a[j]<a[j-1])
- {
- swap(a[j],a[j-1]);
- }else
- {
- break;
- }
- }
- }
- for (int i=0;i<p;i++)//循环输出
- {
- if(a[i]!=a[i-1]||i==0)//过滤重复项
- cout<<a[i]<<endl;
- }
- return 0;
- }

若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为好数。
例如:
(13)10 = (1101)2,其中1的个数为3,0的个数为1,则此数是好数;
(10)10 = (1010)2,其中1的个数为2,0的个数也为2,则此数不是好数;
(24)10 = (11000)2,其中1的个数为2,0的个数为3,则此数不是好数;
对于给定的N,写程序求出1~N之中(包括1与N)中的好数个数。
时间限制:1000
内存限制:65536
输入
一个整数,题目中的N(N ≤ 1000)
输出
一个整数,表示1~N之中(包括1与N)中的好数个数
样例输入
10
样例输出
5
- #include<bits/stdc++.h>
- using namespace std;
- int cnt=0,n;
- int main()
- {
- cin>>n;
- for(int i=1;i<=n;i++)
- {
- int yi=0;//1的个数
- int ling=0;//0的个数
- int k=i;//使用k进行转换
- while(k)//模2除2计算出每一位
- {
- if(k%2==1)
- yi++;
- else
- ling++;
- k/=2;
- }
- if(yi>ling)//好数判断
- cnt++;
- }
- cout<<cnt<<endl;
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。