PKU 3367 Expressions 题解

这个题目先开始一直没有好的想法。
题目也是看了很久才看懂
师姐先开始的想法很好但是我没有去做。
最后兜了很大一个圈子还是回到了以前的想法
就是模拟的去建一个数然后给每个位置标号没上成一层就加1
然后再从树根上往下扫一遍。然后树根为1每个位置往下的时候加一
然后这个排序就可以了
最后这个题代码由敏哥完成了
 1#include<stdio.h>
 2#include<algorithm>
 3using namespace std;
 4
 5struct nn
 6{
 7    int dp,m,mark;
 8}
pt[10010];
 9
10int len,t;
11char str[11000];
12
13void di(int deep)
14{
15    pt[t].dp = deep;
16    pt[t].m = str[len];
17    pt[t++].mark = t;
18    if(str[len] >= 'A' && str[len] <= 'Z')
19    {
20        len--;
21        di(deep+1);
22        di(deep+1);
23        return;
24    }

25    if(str[len] >= 'a' && str[len] <= 'z')
26    {
27        len--;
28        return;
29    }

30}

31
32int cmp(nn a, nn b)
33{
34    if(a.dp != b.dp)
35        return a.dp > b.dp;
36    else 
37        return a.mark < b.mark;
38}

39
40int main()
41{
42    int n,i;
43    scanf("%d"&n);
44    while(n--)
45    {
46        scanf("%s",str);
47        len = strlen(str)-1;
48        t = 0;
49        di(0);
50        sort(pt,pt+t,cmp);
51        for(i = 0; i < t; i++)
52            printf("%c",pt[i].m);
53        printf("\n");
54    }

55    return 0;
56}

57
58

posted on 2008-07-20 22:04 gong 阅读(412) 评论(1)  编辑 收藏 引用

评论

# re: PKU 3367 Expressions 题解 2010-08-03 15:38 ahshua

I think we can help each other,make friends with you.(QQ:1015380720)  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(6)

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜