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相关推荐

  1. 《惢客创业日记》2021.05.29(周六)怀念儿时的凉拌西红柿

    今天,在下班的路上,听到路边传来一声吆喝:"沙瓤的西红柿,一块五一斤."扭头一看,原来是一个推着三轮车的菜贩正在卖着西红柿. 一听到"沙瓤西红柿"这五个字,脑海 ...

  2. 怀旧营销:一场从“激发”到“裂变”的“记忆旅行”

    文 | 公关之家 作者:小5 引言:激发受众需求,准确推出情感载体,迎来营销"裂变"--怀旧营销"三定律" 不知从何时开始,越来越"怕死"的 ...

  3. 历程篇 之 我的 2019 (历时一年,只为记录美好生活~)

    LZ-Says:路漫漫其修远,路远而耐厚,期待未来的每天愈来愈好-! 前言 2018 年,充满戏剧性,可能,真的翻身了. 谢谢 2018 年曾经帮助过我的人,铭记在心,不曾敢望! 新的一年,2019, ...

  4. 职场中的服务 —— 满足心理诉求

    在我看来,商业社会中的服务是: 订立并尊重契约,重视执行过程中对方的感受,给予达到或超出预期的结果,实现互利双赢. 我今天想和大家分享在职场中的服务,以我的角色(软件工程师)为例来讲述,我们应该提供什 ...

  5. 方格1010+颠覆经典俄罗斯方块逻辑玩法的手游

    儿时的经典游戏还记得吗?和单调的黑白俄罗斯方块说拜拜吧,<方块1010+>亮丽的色彩搭配,简单的10*10棋盘格,打破俄罗斯方块的逻辑玩法,彩色方块组合可以自行手动放置,而不是被动落下,是 ...

  6. 父亲节python代码半个心_2019父亲节感恩父亲的话 父亲节对爸爸说的暖心话句子...

    1.把无数的思念化做心中无限的祝福,默默地为你祈祷,愿爸爸身体健康,父亲节快乐!您在我心里是最英俊的人了! 2.辛苦了半辈子,奋斗了几十年,我亲爱的爸爸,也该享享清闲.祝您晚年吃得好,玩得爽,喝得好, ...

  7. 什么时候,我们成了摇钱树……

    最近我的好朋友发生一些事情让人颇为愤慨,再次颠覆我对师长的看法,师德,真的败给了金钱吗? 我们的班主任(其实就是辅导员,我们学校没有真正意义上的班主任)叫肖xx,她让我们喊她肖姐,她是个很厉害女人,这 ...

  8. Java父亲节贺卡,父亲节贺卡祝福语

    父亲节贺卡祝福语 老爸您辛苦了,我知道您最大的愿望就是望子成龙,我一定不会有望重托,爸今天是父亲节,我祝您活到大寿,爸您劳累了,等儿子事业有成,让您环游世界. 一年一度您的日子,在没有我在身边的时候希 ...

  9. 用python祝福父亲节_2019父亲节的祝福语_经典语句

    1 / 6 文章来源网络整理,仅供参考学习 2019 父亲节的祝福语 1 .爸: 为了儿的人生您辛苦了大半辈子 ! 今天是您的节日,儿想 对您说:谢谢您,我最亲最爱的爸 ! 2 .爸爸,记住少抽烟,少 ...

最新文章

  1. html可以导入MySQL吗_将数据从HTML文件(带有嵌入式JavaScript)导入MySQL数据库
  2. 360手机麦克风测试软件,【奇酷小技巧】教你无需ROOT增大话筒、听筒和外放声音!...
  3. TFTP更新linux或android系统文件
  4. 如何解开机器学习的面纱?
  5. 数据库编程——intro to JDBC
  6. java和mysql之间的时间日期类型传递
  7. java充血模型orm框架,关于领域驱动设计和贫血、失血、充血模型
  8. ansys 内聚力模型_《ANSYS Workbench有限元分析实例详解(静力学)》,9787115446312
  9. perf-perf stat用户层代码分析
  10. 进入android数据可视化,Android中的实时数据可视化
  11. 计算机组装维护与故障排除教材,电脑组装、维护与故障排除(第2版)
  12. keyshot渲染图文教程_keyshot基础图文教程,手把手教你用keyshot制作动画效果
  13. 域适应(Domain Adaptation)综述
  14. JJWT:JWS, JWE, JWK, JWA, JWT
  15. 交互设计笔记(4)——理解用户:定性研究
  16. 自由职业为何会崛起成为一股暗潮?
  17. 我也不知道说什么....
  18. Android:根据文件大小自动转化为KB, MB, GB
  19. win10 用户设置cmd 管理员权限
  20. Chain of Responsibility模式——读书笔记

热门文章

  1. 网络游戏怎么样推广引流,游戏推广怎么做引流
  2. 2020-03-10
  3. 【AD】如何画双层PCB板,双层PCB板布线规则
  4. 秋招Java岗,心态大崩,今年的面试真的有必要这么卷吗?
  5. nginx学习,看这一篇就够了(转)
  6. vscode能写winform窗体吗_vs code 写C#心得
  7. Python循环结构——while
  8. 三阶魔方背后的神奇数学
  9. 开源!!!100 多个常用 API 数据接口免费分享!建议收藏!
  10. 常见中文字体英文名称以及windows默认字体列表