标题:百度杯 华中北区程序设计邀请赛 预赛 出处:Felix021 时间:Sun, 15 Mar 2009 00:14:55 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1506 内容: 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 #include 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 #include #include #include 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]; mapst; map::iterator p, q; set jiong; set::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"); } Generated by Bo-blog 2.1.0