#7:怀念儿时的春节——9
CF618C,水啊。
1 #include <bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 5 struct point { 6 ll x, y; 7 int id; 8 bool operator < (const point b) const { 9 if (x != b.x) return x < b.x; 10 return y < b.y; 11 } 12 }c[100005]; 13 14 bool ok(int i, int j, int k) { 15 return (c[k].y-c[j].y)*(c[j].x-c[i].x) != (c[j].y-c[i].y)*(c[k].x-c[j].x); 16 } 17 18 int main() { 19 int n; 20 cin >> n; 21 for (int i = 1; i <= n; i++) { 22 cin >> c[i].x >> c[i].y; 23 c[i].id = i; 24 } 25 sort(c+1, c+1+n); 26 for (int j = 3; j <= n; j++) { 27 if (ok(1, 2, j)) { 28 printf("%d %d %d\n", c[1].id, c[2].id, c[j].id); 29 return 0; 30 } 31 } 32 }
View Code
CF621C,不好dp,其实逆向思维一下用总的减去不行的概率乘积即可简单求得。
1 #include <bits/stdc++.h> 2 #define ld long double 3 #define maxn 100005 4 using namespace std; 5 6 int n, p; 7 ld pro[maxn]; 8 ld ans; 9 10 int main() { 11 cin >> n >> p; 12 for (int i = 1; i <= n; i++) { 13 int l, r; 14 cin >> l >> r; 15 ld cnt = r/p - (l-1)/p; 16 ld range = r-l+1; 17 pro[i] = 1.0 - cnt/range; 18 } 19 20 for (int i = 1; i <= n; i++) { 21 int nxt = i == n ? 1 : i+1; 22 ans += 1.0 - pro[i]*pro[nxt]; 23 } 24 cout << fixed << setprecision(6) << ans*2000; 25 return 0; 26 }
View Code
POJ2096,期望这东西的概率,正着和倒着概率是一样的,所以倒着dp的时候概率还用正着的即可。
1 #include <cstdio> 2 #define db double 3 int n, s; 4 db dp[1005][1005]; 5 6 int main() { 7 scanf("%d%d", &n, &s); 8 for (int i = n; ~i; i--) 9 for (int j = s; ~j; j--) { 10 if (i == n && j == s) continue; 11 db p1 = (db)(n-i) * (s-j) / n / s; 12 db p2 = (db)i * (s-j) / n / s; 13 db p3 = (db)(n-i) * j / n / s; 14 db p4 = (db)i * j / n / s; 15 dp[i][j] = (p1*dp[i+1][j+1] + p2*dp[i][j+1] + p3*dp[i+1][j] + 1) / (1-p4); 16 } 17 printf("%.4f", dp[0][0]); 18 return 0; 19 }
View Code
CF621A,太水啦。
1 #include <cstdio> 2 #include <queue> 3 #define ll long long 4 using namespace std; 5 6 int n, t; 7 ll ans; 8 priority_queue<ll> Q; 9 10 int main() { 11 scanf("%d", &n); 12 for (int i = 0; i < n; i++) { 13 ll x; 14 scanf("%lld", &x); 15 if (x & 1) Q.push(x), t++; 16 else ans += x; 17 } 18 for (int i = 0; i < t>>1; i++) { 19 ll x = Q.top(); 20 Q.pop(); 21 ll y = Q.top(); 22 Q.pop(); 23 ans += x + y; 24 } 25 printf("%lld", ans); 26 return 0; 27 }
View Code
CF624C,直接把二分图填了,然后查矛盾。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int n, m; 5 int du[505]; 6 bool mp[505][505]; 7 char s[505]; 8 9 inline void judge(int x) { 10 if (du[x] == n-1) 11 s[x] = 'b'; 12 } 13 14 int main() { 15 cin >> n >> m; 16 for (int i = 0; i < m; i++) { 17 int a, b; 18 cin >> a >> b; 19 mp[a][b] = mp[b][a] = true; 20 du[a]++, du[b]++; 21 judge(a), judge(b); 22 } 23 24 int tmp = 1; 25 for (int i = 1; i <= n; i++) { 26 mp[i][i] = true; 27 if (s[i] != 'b') { 28 tmp = i; 29 } 30 } 31 32 for (int i = 1; i <= n; i++) 33 if (!s[i]) { 34 if (mp[tmp][i]) s[i] = 'a'; 35 else s[i] = 'c'; 36 } 37 38 bool flag = true; 39 for (int i = 1; i <= n; i++) 40 for (int j = 1; j <= n; j++) 41 if (mp[i][j] && abs(s[i] - s[j]) == 2) 42 flag = false; 43 else if (!mp[i][j] && abs(s[i] - s[j]) < 2) 44 flag = false; 45 46 if (flag) { 47 puts("Yes"); 48 printf("%s", s+1); 49 } else { 50 puts("No"); 51 } 52 53 return 0; 54 }
View Code
CF624D,这个题好哇、题解果然要货比三家的。首先要察觉答案范围可用第一个数和最后一个数大幅度压缩。然后gcd不要死板,素因子只会比合数要求更宽松所以更优所以枚举素数即可。接下来dp思想进行处理,通过这题感觉dp就是个扩大范围的马尔可夫呀233.
1 #include <bits/stdc++.h> 2 #define ll long long 3 #define maxn 1000005 4 #define INF (1LL<<60) 5 #define pb push_back 6 #define rep(i, a, b) for (int i = a; i <= b; i++) 7 using namespace std; 8 9 int n, a, b; 10 int val[maxn]; 11 vector<int> gcd; 12 ll ans = INF; 13 14 void get(int num) { 15 for (int i = 2; i * i <= num; i++) { 16 if (num % i == 0) { 17 gcd.pb(i); 18 while (num % i == 0) 19 num /= i; 20 } 21 } 22 if (num > 1) gcd.pb(num); 23 } 24 25 ll cal(int x) { 26 ll havnt_delet = 0ll, is_deleting = 0ll, hav_done = 0ll; 27 rep(i, 1, n) { 28 if (val[i] % x == 0) { 29 hav_done = min(hav_done, is_deleting); 30 is_deleting = min(havnt_delet, is_deleting) + a; 31 } 32 else if ((val[i]-1) % x == 0 || (val[i]+1) % x == 0) { 33 hav_done = min(hav_done, is_deleting) + b; 34 is_deleting = min(havnt_delet, is_deleting) + a; 35 if (havnt_delet < INF) { 36 havnt_delet += b; 37 } 38 } else { 39 is_deleting = min(havnt_delet, is_deleting) + a; 40 hav_done = havnt_delet = INF; 41 } 42 } 43 return min(havnt_delet, min(is_deleting, hav_done)); 44 } 45 46 int main() { 47 cin >> n >> a >> b; 48 rep(i, 1, n) cin >> val[i]; 49 50 rep(i, -1, 1) { 51 get(val[1] + i); 52 get(val[n] + i); 53 } 54 gcd.erase(unique(gcd.begin(), gcd.end()), gcd.end()); 55 for (auto i : gcd) 56 ans = min(ans, cal(i)); 57 58 cout << ans; 59 return 0; 60 }
View Code
洛谷1525,二分后进行二分图,自己乱搞一下懒得看更优雅的std了。
1 #include <bits/stdc++.h> 2 #define maxn 20005 3 #define pb push_back 4 #define mp make_pair 5 #define P pair<int, int> 6 #define fi first 7 #define se second 8 using namespace std; 9 10 int n, m, maxx; 11 vector<P> v[maxn]; 12 vector<int> tmp[maxn]; 13 int vis[maxn]; 14 int l, r, mid; 15 16 bool dfs(int cur, int color) { 17 vis[cur] = color; 18 for (int i : tmp[cur]) 19 if (vis[i] && vis[i] == color) 20 return false; 21 else if (!vis[i] && !dfs(i, 3-color)) 22 return false; 23 return true; 24 } 25 26 bool ok(int mid) { 27 for (int i = 1; i <= n; i++) tmp[i].clear(); 28 memset(vis, 0, sizeof(vis)); 29 30 for (int i = 1; i <= n; i++) 31 for (auto j : v[i]) 32 if (j.se > mid) 33 tmp[i].pb(j.fi); 34 for (int i = 1; i <= n; i++) 35 if (!vis[i] && !dfs(i, 1)) 36 return false; 37 return true; 38 } 39 40 int main() { 41 cin >> n >> m; 42 for (int i = 0; i < m; i++) { 43 int a, b, c; 44 cin >> a >> b >> c; 45 v[a].pb(mp(b, c)); 46 v[b].pb(mp(a, c)); 47 maxx = max(maxx, c); 48 } 49 for (l = 0, r = maxx; l <= r;) { 50 mid = (l+r) >> 1; 51 if (ok(mid)) r = mid-1; 52 else l = mid+1; 53 } 54 printf("%d", l); 55 return 0; 56 }
View Code
CF600B,水死。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int a, b, x; 5 vector<int> v; 6 7 int main() { 8 cin >> a >> b; 9 for (int i = 0; i < a; i++) { 10 cin >> x; 11 v.push_back(x); 12 } 13 sort(v.begin(), v.end()); 14 for (int i = 0; i < b; i++) { 15 cin >> x; 16 cout << upper_bound(v.begin(), v.end(), x) - v.begin() << " "; 17 } 18 return 0; 19 }
View Code
CF600D,垃圾题目卡我精度毁我青春。很想吐槽学校训练时的rank为什么过二分图的人比过这题的人少?全世界都会计几系列。
1 #include <bits/stdc++.h> 2 #define db long double 3 using namespace std; 4 5 const db PI = 3.141592653589793; 6 const db eps = 1e-10; 7 db da, S1, S2; 8 9 struct Point { 10 db x, y; 11 Point(){} 12 Point(db x, db y):x(x), y(y){} 13 }; 14 struct Circle { 15 Point c; 16 db r; 17 Circle(){} 18 Circle(Point c, db r):c(c), r(r){} 19 Point point(db a) { 20 return Point(c.x + cos(a)*r, c.y + sin(a)*r); 21 } 22 }; 23 typedef Point Vector; 24 int dcmp(db x) { 25 if (x <= eps && x >= -eps) return 0; 26 return x > 0 ? 1 : -1; 27 } 28 bool operator == (Vector A, Vector B) { 29 return dcmp(A.x - B.x) == 0 && dcmp(A.y - B.y) == 0; 30 } 31 Vector operator + (Vector A, Vector B) { 32 return Vector(A.x + B.x, A.y + B.y); 33 } 34 Vector operator - (Vector A, Vector B) { 35 return Vector(A.x - B.x, A.y - B.y); 36 } 37 Vector operator * (Vector A, db p) { 38 return Vector(A.x * p, A.y * p); 39 } 40 Vector operator / (Vector A, db p) { 41 return Vector(A.x / p, A.y / p); 42 } 43 db Cross(Vector A, Vector B) { 44 return A.x * B.y - A.y * B.x; 45 } 46 db Dot(Vector A, Vector B) { 47 return A.x * B.x + A.y * B.y; 48 } 49 db Length(Vector A) { 50 return sqrt(Dot(A, A)); 51 } 52 db angle(Vector A) { 53 return atan2(A.y, A.x); 54 } 55 56 db cal(Circle C, db da) { 57 if (da > PI/2) da = PI - da; 58 return C.r*C.r*da - C.r*C.r*sinl(da)*cosl(da); 59 } 60 61 int Get_Circle_Intersection(Circle C1, Circle C2, vector<Point> &v) { 62 db d = Length(C1.c - C2.c); 63 64 if (dcmp(d) == 0) return 0; 65 if (dcmp(C1.r + C2.r - d) < 0) return -1; 66 if (dcmp(fabs(C1.r-C2.r) - d) > 0) return 0; 67 68 db a = angle(C2.c - C1.c); 69 da = acosl((C1.r*C1.r + d*d - C2.r*C2.r) / (2*C1.r*d)); 70 Point p1 = C1.point(a-da), p2 = C1.point(a+da); 71 S1 = cal(C1, da); 72 73 a = angle(C1.c - C2.c); 74 da = acosl((C2.r*C2.r + d*d - C1.r*C1.r) / (2*C2.r*d)); 75 S2 = cal(C2, da); 76 77 v.push_back(p1); 78 if (p1 == p2) return 1; 79 v.push_back(p2); 80 return 2; 81 } 82 83 bool differe(Vector A, Vector B, Vector C) { 84 return dcmp(Cross(A, B)) * dcmp(Cross(A, C)) <= 0; 85 } 86 87 Circle C1, C2; 88 vector<Point> v; 89 db ans; 90 91 int main() { 92 cin >> C1.c.x >> C1.c.y >> C1.r; 93 cin >> C2.c.x >> C2.c.y >> C2.r; 94 int k = Get_Circle_Intersection(C1, C2, v); 95 if (k == -1) { 96 ans = 0.0; 97 } else if (k == 0) { 98 db r = min(C1.r, C2.r); 99 ans = r*r*PI; 100 } else if (k == 1) { 101 if (Dot(v[0]-C1.c, v[0]-C2.c) > 0) { 102 db r = min(C1.r, C2.r); 103 ans = r*r*PI; 104 } else ans = 0.0; 105 } else { 106 if (differe(v[1]-v[0], C1.c-v[0], C2.c-v[0])) 107 ans = S1 + S2; 108 else if (C1.r < C2.r) 109 ans = C1.r*C1.r*PI - S1 + S2; 110 else ans = C2.r*C2.r*PI - S2 + S1; 111 } 112 cout << fixed << setprecision(7) << ans << endl; 113 return 0; 114 }
View Code
转载于:https://www.cnblogs.com/AlphaWA/p/10353358.html
#7:怀念儿时的春节——9相关推荐
- 《惢客创业日记》2021.05.29(周六)怀念儿时的凉拌西红柿
今天,在下班的路上,听到路边传来一声吆喝:"沙瓤的西红柿,一块五一斤."扭头一看,原来是一个推着三轮车的菜贩正在卖着西红柿. 一听到"沙瓤西红柿"这五个字,脑海 ...
- 怀旧营销:一场从“激发”到“裂变”的“记忆旅行”
文 | 公关之家 作者:小5 引言:激发受众需求,准确推出情感载体,迎来营销"裂变"--怀旧营销"三定律" 不知从何时开始,越来越"怕死"的 ...
- 历程篇 之 我的 2019 (历时一年,只为记录美好生活~)
LZ-Says:路漫漫其修远,路远而耐厚,期待未来的每天愈来愈好-! 前言 2018 年,充满戏剧性,可能,真的翻身了. 谢谢 2018 年曾经帮助过我的人,铭记在心,不曾敢望! 新的一年,2019, ...
- 职场中的服务 —— 满足心理诉求
在我看来,商业社会中的服务是: 订立并尊重契约,重视执行过程中对方的感受,给予达到或超出预期的结果,实现互利双赢. 我今天想和大家分享在职场中的服务,以我的角色(软件工程师)为例来讲述,我们应该提供什 ...
- 方格1010+颠覆经典俄罗斯方块逻辑玩法的手游
儿时的经典游戏还记得吗?和单调的黑白俄罗斯方块说拜拜吧,<方块1010+>亮丽的色彩搭配,简单的10*10棋盘格,打破俄罗斯方块的逻辑玩法,彩色方块组合可以自行手动放置,而不是被动落下,是 ...
- 父亲节python代码半个心_2019父亲节感恩父亲的话 父亲节对爸爸说的暖心话句子...
1.把无数的思念化做心中无限的祝福,默默地为你祈祷,愿爸爸身体健康,父亲节快乐!您在我心里是最英俊的人了! 2.辛苦了半辈子,奋斗了几十年,我亲爱的爸爸,也该享享清闲.祝您晚年吃得好,玩得爽,喝得好, ...
- 什么时候,我们成了摇钱树……
最近我的好朋友发生一些事情让人颇为愤慨,再次颠覆我对师长的看法,师德,真的败给了金钱吗? 我们的班主任(其实就是辅导员,我们学校没有真正意义上的班主任)叫肖xx,她让我们喊她肖姐,她是个很厉害女人,这 ...
- Java父亲节贺卡,父亲节贺卡祝福语
父亲节贺卡祝福语 老爸您辛苦了,我知道您最大的愿望就是望子成龙,我一定不会有望重托,爸今天是父亲节,我祝您活到大寿,爸您劳累了,等儿子事业有成,让您环游世界. 一年一度您的日子,在没有我在身边的时候希 ...
- 用python祝福父亲节_2019父亲节的祝福语_经典语句
1 / 6 文章来源网络整理,仅供参考学习 2019 父亲节的祝福语 1 .爸: 为了儿的人生您辛苦了大半辈子 ! 今天是您的节日,儿想 对您说:谢谢您,我最亲最爱的爸 ! 2 .爸爸,记住少抽烟,少 ...
最新文章
- html可以导入MySQL吗_将数据从HTML文件(带有嵌入式JavaScript)导入MySQL数据库
- 360手机麦克风测试软件,【奇酷小技巧】教你无需ROOT增大话筒、听筒和外放声音!...
- TFTP更新linux或android系统文件
- 如何解开机器学习的面纱?
- 数据库编程——intro to JDBC
- java和mysql之间的时间日期类型传递
- java充血模型orm框架,关于领域驱动设计和贫血、失血、充血模型
- ansys 内聚力模型_《ANSYS Workbench有限元分析实例详解(静力学)》,9787115446312
- perf-perf stat用户层代码分析
- 进入android数据可视化,Android中的实时数据可视化
- 计算机组装维护与故障排除教材,电脑组装、维护与故障排除(第2版)
- keyshot渲染图文教程_keyshot基础图文教程,手把手教你用keyshot制作动画效果
- 域适应(Domain Adaptation)综述
- JJWT:JWS, JWE, JWK, JWA, JWT
- 交互设计笔记(4)——理解用户:定性研究
- 自由职业为何会崛起成为一股暗潮?
- 我也不知道说什么....
- Android:根据文件大小自动转化为KB, MB, GB
- win10 用户设置cmd 管理员权限
- Chain of Responsibility模式——读书笔记