水题,优化,高效(年龄排序,uva 11462)
2016-10-24 21:25
239 查看
做了那么多题,只遇到过2个专门卡空间的题目,一个是某次比赛的,题目是啥都忘掉了,还有一个就是这个水题了。但这题主要值得学习的地方在于输入输出的优化,真的没想到自己写的输入输出能快那么多。250ms与80ms的区别。不过大白书上说的也对,在确信I/O时间成为整个程序性能瓶颈之前,不要盲目优化。至今还没遇到卡手写输入输出的题目= =。
isdigit函数在头文件cctype里。
输入输出函数写成inline。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int cnt[110];
inline int readint()
{
char c=getchar();
while(!isdigit(c)) c=getchar();
int x=0;
while(isdigit(c))
{
x=x*10+c-'0';
c=getchar();
}
return x;
}
int buf[10];
inline void writeint(int x)
{
int p=0;
if(x==0) buf[p++]=0;
else
{
while(x)
{
buf[p++]=x%10;
x/=10;
}
for(int i=p-1;i>=0;i--) putchar('0'+buf[i]);
}
}
int main()
{
while(scanf("%d",&n)==1&&n)
{
memset(cnt,0,sizeof(cnt));
int t;
for(int i=1;i<=n;i++)
cnt[readint()]++;
t=0;
for(int i=1;i<=100;i++)
{
while(cnt[i])
{
if(t) printf(" ");
t=1;
writeint(i);
cnt[i]--;
}
}
puts("");
}
return 0;
}
isdigit函数在头文件cctype里。
输入输出函数写成inline。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int cnt[110];
inline int readint()
{
char c=getchar();
while(!isdigit(c)) c=getchar();
int x=0;
while(isdigit(c))
{
x=x*10+c-'0';
c=getchar();
}
return x;
}
int buf[10];
inline void writeint(int x)
{
int p=0;
if(x==0) buf[p++]=0;
else
{
while(x)
{
buf[p++]=x%10;
x/=10;
}
for(int i=p-1;i>=0;i--) putchar('0'+buf[i]);
}
}
int main()
{
while(scanf("%d",&n)==1&&n)
{
memset(cnt,0,sizeof(cnt));
int t;
for(int i=1;i<=n;i++)
cnt[readint()]++;
t=0;
for(int i=1;i<=100;i++)
{
while(cnt[i])
{
if(t) printf(" ");
t=1;
writeint(i);
cnt[i]--;
}
}
puts("");
}
return 0;
}
相关文章推荐
- ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462
- UVa 11462 年龄排序 (计数排序及IO优化)
- UVA11462年龄排序
- uva11462 - Age Sort(年龄排序)
- 水题,高效,优化(开放式学分制,uva 11078)
- 年龄排序(Uva 11462)
- 第一章例题17年龄排序学UVa11462(内存受限问题,计数排序)
- UVA993 Product of digits【水题+字符串排序+不排序】
- Uva 10420 - List of Conquests(排序水题)
- UVa Age Sort 11462(排序技巧)
- 紫书第八章-----高效算法设计(快速排序水题格式要求严)
- UVA 1481 Genome Evolution(高效算法优化)
- UVA11462——排序——Age Sort
- POJ 1002 UVA 755 487--3279 电话排序 简单但不容易的水题
- uva 11462 基数排序
- 算法竞赛入门经典 高效算法之年龄排序
- [ACM_水题] UVA 11292 Dragon of Loowater [勇士斗恶龙 双数组排序 贪心]
- POJ 1002 UVA 755 487--3279 电话排序 简单但不容易的水题
- UVA 11462 Age Sort(IO优化)
- UVA 11462 Age Sort(计数排序法 优化输入输出)