省选模拟赛[SHOI2017] Day2
来源:互联网 发布:长江大数据交易所 编辑:程序博客网 时间:2024/06/03 15:55
比赛过程
17:50
cccc来晚了来晚了gggggg….. 看了一遍题, woc今年的省选??? 感觉要gg. 怎么一道题都没有见过啊, 今天又要爆零啦…. 看了一遍t1, 好长啊? 所以看完了还要数据分治? 看第二题… 期望? 省选级别的期望都不简单啊, 跪了跪了跪了…. 看第三题? dp? 100数据范围感觉可以乱搞啊?
20:00
想了三道题无果, 开始t1数据分治, 感觉能拿84pts? 这也不差了吧… 但是实在写的太烦躁了决定冷静一下, 写完懒得编译, 先去做其他题(千万不要学我). 第三题看了样例还有负数? 再看了一下数据范围100… 这不最大权闭合子图吗? 这玩意没敲过啊, 但是大概建图我知道. 于是开始码码码码… 还是挺好写的? 感觉建边方式有点多啊, 有点虚? 调了一遍样例, 死了? 检查一下发现bfs没pop, 老毛病了? 还死? 检查了一下读优发现没判负数. 怎么还死? 突然发现没死原来是还可以输入… 检查了一下读入发现有个地方写错了, 改了一下所有样例瞬间全部过完了, 心中舒畅…dinic就是好写啊.
21:30
重新看t2, 感觉还是不会做, 也就没有看部分分的数据保证(事实证明这是今日最后悔的事情). 看t1去了. 继续修改了t1的暴力, 发现到了22:00没调出来? 十分钟狂飙手速一波改成低级暴力… 发现还是过不了? 心中慌.
22:10
t1弃疗, 估分100+, 考试结束.
赛后
t3 a了, 爽歪歪. tm t1真没分??? 我写了那么久的数据分治啊… 太贪心了想去拿84pts. 早知道写个最朴素的暴力把他写正确也很不错啊. t2居然有n==k的时候???? 那不是倒着for一遍就有分? 瞬间敲完暴力上去发现有80pts??? woc怎么没有去看t2的部分数据啊我好蠢啊…
反思
1.无论多虚都要看一下部分数据保证, 说不定能骗很多分.
2. 写哪道题一定要想清楚了写, 写就一定要写的能得分, 要不然等于白费时间, 即使是暴力也要想清楚了再写.
题解
分手是祝愿
题解
#include<bits/stdc++.h>using namespace std;typedef long long lnt;const int mod = 1e5 + 3;const int maxn = 1e5 + 5;int n, k, num, a[maxn];lnt inv[maxn], b[maxn], ans;int main() { inv[1] = 1; scanf("%d%d", &n, &k); for (int i = 1; i <= n; ++ i) scanf("%d", &a[i]); for (int i = 2; i <= n; ++ i) inv[i] = (-(mod / i) * inv[mod % i] % mod + mod) % mod; for (int i = n; i; -- i) if (a[i]) { ++ num; for (int j = 1; j * j <= i; ++ j) if (i % j == 0) { a[j] ^= 1; if (j * j != i) a[i / j] ^= 1; } } for (int i = n; i; -- i) b[i] = ((n - i) * b[i + 1] % mod + n) * inv[i] % mod; if (k >= num) ans = num; else { b[k] = k; for (int i = k; i <= num; ++ i) ans = (ans + b[i]) % mod; } for (int i = 2; i <= n; ++ i) ans = ans * i % mod; printf("%lld\n", ans); return 0;}
寿司
#include<bits/stdc++.h>#define deeper(a) memset(a, -1, sizeof(a))using namespace std;const int inf = 1e9;const int maxm = 2e6;const int maxn = 4e4;queue<int> q;long long ans;bool vis[1005];int n, num, S, T, cnt, m;int h[maxn], dis[maxn], a[maxn], id[105][105], d[105][105];struct edge { int nxt, v, c;}e[maxm];inline void add(int u, int v, int w) { e[++ num].v = v, e[num].nxt = h[u], e[num].c = w, h[u] = num; e[++ num].v = u, e[num].nxt = h[v], e[num].c = 0, h[v] = num;}inline const int read() { register int x = 0, f = 1; register char ch = getchar(); while (ch < '0' || ch > '9') {if (ch == '-') f = -1; ch = getchar();} while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar(); return f * x;}inline bool bfs() { deeper(dis); dis[S] = 0, q.push(S); while (!q.empty()) { int u = q.front(); q.pop(); for (int i = h[u]; i; i = e[i].nxt) { int v = e[i].v; if (dis[v] == -1 && e[i].c) dis[v] = dis[u] + 1, q.push(v); } } return dis[T] != -1;}inline int dfs(int u, int a) { if (u == T) return a; int f, flow = 0; for (int i = h[u]; i; i = e[i].nxt) { int v = e[i].v; if (dis[v] == dis[u] + 1 && e[i].c) { f = dfs(v, min(e[i].c, a)); e[i].c -= f, e[i ^ 1].c += f; a -= f, flow += f; if (!a) return flow; } } if (!flow) dis[u] = -1; return flow;}int main() { freopen("sushi.in", "r", stdin); freopen("sushi.out", "w", stdout); n = read(), m = read(); for (int i = 1; i <= n; ++ i) a[i] = read(), vis[a[i]] = true; T = cnt = 1001, num = 1; for (int i = 1; i <= 1000; ++ i) if (vis[i]) add(i, T, m * i * i); for (int i = 1; i <= n; ++ i) for (int j = i; j <= n; ++ j) d[i][j] = read(), id[i][j] = ++ cnt; for (int i = 1; i <= n; ++ i) for (int j = 1; j <= n; ++ j) { if (i == j) d[i][j] -= a[i], add(id[i][j], a[i], inf); if (d[i][j] > 0) { ans += d[i][j]; add(S, id[i][j], d[i][j]); } if (d[i][j] < 0) add(id[i][j], T, -d[i][j]); if (i != j) { add(id[i][j], id[i + 1][j], inf); add(id[i][j], id[i][j - 1], inf); } } while (bfs()) ans -= dfs(S, inf); printf("%lld\n", ans); return 0;}
- 省选模拟赛[SHOI2017] Day2
- 省选模拟赛[HEOI2012] Day2
- 【省选模拟】【HNOI2015 day2】
- day2模拟赛总结
- CQOI2016 day2 模拟赛总结
- 2- noip模拟赛 DAY2
- contesthunter NOIP模拟赛Day2 8.10
- 模拟赛day2 2014 10 26
- 山东多校联合模拟赛 Day2
- NOIP2014 Day2 模拟赛赛后总结&题解
- 洛谷 NOIP 模拟 DAY2
- CH Round #49 - Streaming #4 (NOIP模拟赛Day2)
- CH Round #55 - Streaming #6 (NOIP模拟赛day2)总结
- 计蒜客 2017 NOIP 提高组模拟赛(一)Day2
- 计蒜客 2017 NOIP 提高组模拟赛(二)Day2
- 2017 NOIP 提高组模拟赛(四)Day2(计蒜客)
- 补noip2014day1、noip2014模拟day2
- Shoi2017(六省联考)Day1题解
- win32开发(按键消息)
- 进程调度API之wait_for_completion_x
- Algorithm之路十五:3Sum
- 购物车
- 1-1 s3c2440 中断详解
- 省选模拟赛[SHOI2017] Day2
- Android Studio用真机调试
- 全球电子垃圾回收率仅20% 对人类环境造成威胁
- 从零开始的Python爬虫速成指南
- 动态生成html表单并提交
- 线程安全与共享资源
- 知乎上50个负能量段子,看完整个人都神清气爽
- 11.25
- Python 中的枚举类型