Codeforces Beta Round #83 DIV2
2011-08-24 21:23
148 查看
这一晚上。。。板子硬了点,睡的不太舒服,等会儿回宿舍补一觉~
在ID之间纠结了一阵子后,偶还是决定沿用Moon_1st这个ID,偶滴品牌不能丢了~ ^_^。
A:单纯模拟的~
B:刚开始想麻烦了,直观的想法是先排一下序,然后比较所有相邻且不同的数对,如果a(i+1)<=2*ai,那么必然输出Yes,由于(2^ai-1)^2 = 2^(2*ai)-2^(ai+1)+1,偶一直在考虑2^(ai+1)是否会对结果产生不利影响,不大容易看~但是从小case逐步增加的具体过程发现,除了ai==1的请况有影响外,其他的影响会随着ai的增大逐步递减,也就是没有影响。所以排序后直接判断相邻且不相等的数对就可以了。
C:一开始还兴冲冲地以为自己终于在正式比赛里碰到个网络流,没想到越看越不对劲,到最后正式确认是个水题~~不过孤立节点的trick需要注意一下,偶就改了一次,还好没被人cha到~
D:这个偶就木有什么发言权了,ff很快就秒掉了额。。。。偶还在纠结怎么写。。。直观的想法是sigma(C(sh-1, i)*C(sum-a[h], n-i-1)/C(sum-1,n-1)) (i=1,2,3,......,n-1)。偶还在想难道让偶用java BigDecimal么??不太确信用C++怎么写,先看得第五题,结果还是不会啊~看完后lock了一下代码,发现某些人C题有trick,然后就开始找人cha(貌似应该说hack)。。。。越hack越起劲啦,哈哈,头一次在cf里hack,四次都命中啦~也没再干别的。赛后听方方说你边乘边除不就算出结果来了么,偶想了想也是啊~View Code
补一下D的代码:
在ID之间纠结了一阵子后,偶还是决定沿用Moon_1st这个ID,偶滴品牌不能丢了~ ^_^。
A:单纯模拟的~
B:刚开始想麻烦了,直观的想法是先排一下序,然后比较所有相邻且不同的数对,如果a(i+1)<=2*ai,那么必然输出Yes,由于(2^ai-1)^2 = 2^(2*ai)-2^(ai+1)+1,偶一直在考虑2^(ai+1)是否会对结果产生不利影响,不大容易看~但是从小case逐步增加的具体过程发现,除了ai==1的请况有影响外,其他的影响会随着ai的增大逐步递减,也就是没有影响。所以排序后直接判断相邻且不相等的数对就可以了。
C:一开始还兴冲冲地以为自己终于在正式比赛里碰到个网络流,没想到越看越不对劲,到最后正式确认是个水题~~不过孤立节点的trick需要注意一下,偶就改了一次,还好没被人cha到~
D:这个偶就木有什么发言权了,ff很快就秒掉了额。。。。偶还在纠结怎么写。。。直观的想法是sigma(C(sh-1, i)*C(sum-a[h], n-i-1)/C(sum-1,n-1)) (i=1,2,3,......,n-1)。偶还在想难道让偶用java BigDecimal么??不太确信用C++怎么写,先看得第五题,结果还是不会啊~看完后lock了一下代码,发现某些人C题有trick,然后就开始找人cha(貌似应该说hack)。。。。越hack越起劲啦,哈哈,头一次在cf里hack,四次都命中啦~也没再干别的。赛后听方方说你边乘边除不就算出结果来了么,偶想了想也是啊~View Code
#include <iostream> #include <cstdio> #include <ctime> #include <cmath> #include <cstring> #include <cstdlib> #include <string> #include <queue> #include <stack> #include <vector> #include <map> #include <set> #include <algorithm> using namespace std; #define MP(x, y) make_pair(x, y) #define FOR(i, x, y) for((i) = (x); (i) <= (y); (i)++) typedef long long llg; const int N = 1010; const int inf = 0x7fffffff; int n, m, next , r , d ; struct node { int tank, tap, val; }; vector <node> g; bool cmp(const node &a, const node &b) { return a.tank < b.tank; } void deal(int u) { int i, limit = inf; node tmp; if(next[u] == 0) return; for(i = u; next[i] != 0; i = next[i]) limit = min(limit, d[i]); tmp.tank = u; tmp.tap = i; tmp.val = limit; g.push_back(tmp); } int main() { int i, a, b, c, len; memset(next, 0, sizeof(next)); memset(r, 0, sizeof(r)); scanf("%d%d", &n, &m); for(i = 0; i < m; i++) { scanf("%d%d%d", &a, &b, &c); next[a] = b; r[b] = a; d[a] = c; } g.clear(); for(i = 1; i <= n; i++) if(r[i] == 0) deal(i); sort(g.begin(), g.end(), cmp); len = g.size(); printf("%d\n", len); for(i = 0; i < len; i++) printf("%d %d %d\n", g[i].tank, g[i].tap, g[i].val); return 0; }
补一下D的代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1010; int n, m, h, sum, s ; double ans, a[105], b[105]; int main() { int i; scanf("%d%d%d", &n, &m, &h); sum = 0; for(i = 1; i <= m; i++) { scanf("%d", s+i); sum += s[i]; } if(sum < n) printf("-1\n"); else { for(i = 1; i < n; i++) { a[i] = (double)(sum-s[h]-i+1); b[i] = (double)(sum-i); } ans = 1.0; for(i = n-1; i > 0; i--) ans = ans*a[i]/b[i]; printf("%.8f\n", 1.0-ans); } return 0; }
相关文章推荐
- 注重SEO搜索优化的div+css命名规则
- 利用CSS设置div的最小高度(多浏览器兼容)代码
- 总结与学习DIV+CSS网页布局技巧
- CF #262 (Div. 2)B
- Codeforces Round #304 (Div. 2) D Soldier and Number Game
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) B. Guess the Permutation 水题
- AIM Tech Round 3 (Div. 2) E. Centroids (树形dp)
- js-div的变色
- Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) C.Ordering Pizza
- SRM 114 DIV2 [550]
- Div 自适应屏幕大小
- javascript删除DIV
- Codeforces Round #262 (Div. 2) D Little Victor and Set
- CF 209 Div2 (C) 快速幂 取分子最小的公约数
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) D. Minimization(dp)
- AIM Tech Round 3 (Div. 2) D. Recover the String 构造、贪心、多坑、WA162
- Codeforces Round #402 (Div2)D题
- Codeforces Round #437 (Div. 2) E. Buy Low Sell High
- DIV图层圆边圆角的实现
- DIV+CSS命名规范有助于SEO