输入输出框架浅谈(重定向版)

版权声明:版权归原作者CangyeChen所有,未经原作者允许不得转载本文内容,否则将视为侵权,转载或者引用本文内容请注明来源及原作者,对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等 https://blog.csdn.net/CANGYE0504/article/details/89319275

对于一些程序要求输入大量的数据,手动一个一个输入极其不方便,好的方法就是事先存在文件中,然后让程序自己读取,输出成文件txt方便直观比较。

主要方式是在程序第一行定义:

#define LOCAL

然后 在读取数据之前定义:

#ifdef LOCAL
	freopen("看电视.in","r",stdin);
	freopen("看电视.out","w",stdout);
#endif

真正提交时候删除首行的

#define LOCAL

 即可。

别看这玩意有点麻烦,在真正的算法设计考试比如PAT考试,或者一些竞赛中,这种方法会省下你大量时间!可以说必须要学习!算法设计就是抢时间!

算法笔记 4.4 贪心 问题 A: 看电视为例子: 

#define LOCAL

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
 
const int maxn = 101;
 
struct jm{
	int x;
	int y;
}I[maxn];
 
bool cmp(jm a,jm b)
{
	if(a.x!=b.x)
		return a.x>b.x;
	return a.y<b.y;
} 
	 
int main()
{
//以下是调试的文件读取方式,在真正提交时候删除文件第一行的#define LOCAL即可
#ifdef LOCAL
	freopen("看电视.in","r",stdin);
	freopen("看电视.out","w",stdout);
#endif

	int n,t;
	while(scanf("%d",&n)==1){
	if(!n) break;
	for(int i=0;i<n;i++)
	{
		scanf("%d%d",&I[i].x,&I[i].y); 
	}
	sort(I,I+n,cmp);
	int num=1,temp=I[0].x;
	for(int j=0;j<n;j++)
	{
		if(I[j].y<=temp)
		{
			temp = I[j].x;
			num++;
		}	
	}
	printf("%d\n",num);
}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/CANGYE0504/article/details/89319275