BFS @ 2009-03-14
A,搜索,没做。
B,搜索,没做。
C,计算几何,没做。
D,加密算法,Boluor没做完。
E,模拟,Sandy写的,trick是需要先判断下一个走的人是谁(B/W)。
F,表达式的计算,我之前没有看题目,但是扫了一下,觉得应该很简单,回头写一下,应该不难吧。
G,计算几何,超简单的一个等比方程解一下;trick在于两个int加起来以后会OverFlow。
H,字符串处理,数据量很小,不要Trie,用map+set搞定。
I,没看。
J,DP,Sandy推出一个方程,和他讨论了一下,就被拖到机房去,然后他写了AC了。

oak真是相当的不堪阿,sigh。

--

党员活动室确实很适合看电影,音效非常好。

--

贴上我写的代码:

//G - Pinhole Image
#include<stdio.h>
#include<math.h>

int main(){
    int n, A, B, H;
    scanf("%d", &n);
    while (n--){
        scanf("%d%d%d", &A, &B, &H);
        printf("%.2lf\n",(double)B * (double)H / (double)A);
    }
    return 0;
}

//H - URL
#include<iostream>
#include<cstring>
#include<map>
#include<set>
using namespace std;

struct ooxx{
    string t;
    int c;
    friend inline bool operator <(const ooxx &a, const ooxx &b){
        return ((a.c > b.c) ||
                (a.c == b.c && a.t < b.t));
    }
};

char act[20], url[110];
map<string, int>st;
map<string, int>::iterator p, q;
set<ooxx> jiong;
set<ooxx>::iterator jp;

void visit();
void display();

int main(){
    int T, N;
    scanf("%d", &T);
    while(T--){
        st.clear();
        scanf("%d", &N);
        for (int i = 0; i < N; ++i){
            scanf("%s%s", act, url);
            if(act[0] == 'V') visit();
            else display();
        }
    }
    return 0;
}

void visit(){
    string t = string(url);
    st[t]++;
}

void display(){
    jiong.clear();
    int len = strlen(url), i;
    for(p = st.begin(), q = st.end(); p != q; p++){
        for(i = 0; i < len; ++i){
            if(p->first[i] != url[i]) break;
        }
        if(i == len){
            ooxx a;
            a.t = p->first;
            a.c = p->second;
            jiong.insert(a);
        }
    }
    for(jp = jiong.begin(); jp != jiong.end(); jp++){
        printf("%s\n", (jp->t).c_str());
    }
    printf("\n");
}




欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php