题目来源:http://116.56.140.75:8000/JudgeOnline/problem.php?id=1724
1724: 隔行扫描
时间限制: 1 Sec 内存限制: 64 MB题目描述
CRT(阴极射线管)作为显示设备在很多场合下使用,例如,老式的电视机,计算机的显示器,专业的图形显示设备,公交车内监视器,电子仪器中示波器。它的基本原理是由阴极发射高速电子束,电子束在经过加电的平行电极板之间的电场时,发生偏转,最后电子束打到涂在玻璃表面的荧光粉而发光。电子束在荧光屏上从上到下从左到右顺序地高速扫描,便形成了图像。为了减少显示器的闪烁,保护眼睛健康,原来的逐行扫描改进为隔行扫描。也就是先扫奇数行,再扫偶数行,这样能减少屏幕闪烁的程度,后来被CRT显示设备广泛采用。 我们可以认为显示屏是一个m行n列的点阵,现在,需要你来编程实现按照隔行扫描的方式,如何将一幅图像中的点按扫描次序输出。
输入
第一行有两个参数m,n(1≤m,n≤2000),分别表示屏幕点阵的行数和列数。其后的m行,n列中的每个元素为一个整数,表示该点的RGB颜色值c,0≤c≤(2^24-1)。
输出
请按隔行扫描的方式输出点阵。
样例输入
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
样例输出
1 2 3 4
9 10 11 12
5 6 7 8
13 14 15 16
解析:相当于字符串的输入输出
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
string *str=new string[m];
getline(cin,str[0]);
for(int i=0;i<m;i++)
getline(cin,str[i]);
for(int i=0;i<m;i+=2)
cout<<str[i]<<endl;
for(int i=1;i<m;i+=2)
cout<<str[i]<<endl;
}
/**************************************************************
Problem: 1724
User: 201730685257
Language: C++
Result: 正确
Time:0 ms
Memory:1484 kb
****************************************************************/