博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj - 1988 Cube Stacking
阅读量:5950 次
发布时间:2019-06-19

本文共 1118 字,大约阅读时间需要 3 分钟。

题目的意思是把数字像串糖葫芦一样串来串去,询问某个数字下方有多少个数。我看明白了popopopolo的思路后就按他的想法自己写了一个,结果用了282ms,而他的只有32ms,排名第二,差距还真是大orz。仔细对比一下,他的数据类型是short,输入输出函数也是重写的。我试着把int改为short,结果是266ms,基本没什么优化,而我也懒得重写函数了。原来我只知道scanf比cin强,没想到手写的效率要更强。
1 #include 
2 #include
3 #define N 30005 4 int fa[N],d[N]; 5 int find(int x) 6 { 7 if(fa[x] <= 0) return x; 8 int t = fa[x]; 9 fa[x] = find(t);10 if(t != fa[x])11 d[x] += d[t];12 return fa[x];13 }14 int main()15 {16 int n,a,b,i,x,y;17 char ch;18 scanf("%d",&n);19 getchar();20 memset(fa,-1,sizeof fa);21 while(n--)22 {23 scanf("%c",&ch);24 if(ch == 'M')25 {26 scanf("%d%d",&a,&b);27 x = find(a);28 y = find(b);29 d[x] -= fa[y];30 fa[y] += fa[x];31 fa[x] = y;32 }33 else34 {35 scanf("%d",&a);36 find(a);37 printf("%d\n",d[a]);38 }39 getchar();40 }41 return 0;42 }

 

……

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/11/10/2763520.html

你可能感兴趣的文章
JavaScript中cookie使用
查看>>
P3804 【模板】后缀自动机
查看>>
小球下落(Dropping Balls, Uva 679)
查看>>
精简菜单和完整菜单之间进行切换
查看>>
一个关于log4j的悲伤的故事
查看>>
PCA
查看>>
ajax上传文件
查看>>
java中通过绝对路径将图片存入数据库
查看>>
Day2-php 变量的声明
查看>>
[AutoCars(一)]自动驾驶汽车概述(下)
查看>>
C#3.0导航
查看>>
c++ string的用法
查看>>
思想笔记-01
查看>>
Beanshell 内置变量的使用
查看>>
自己写的一个简单的jQuery提示插件
查看>>
简要记录浮点型数据的二进制存储格式
查看>>
C++内存字节对齐规则
查看>>
qt sleep
查看>>
黑马程序员-JavaAPI-17天-6(增强for循环)
查看>>
P3332 [ZJOI2013]K大数查询 整体二分
查看>>