2022 ICPC 南京

三题 铜
第一块 ICPC 牌子
用了两个小时就结束了,后面三小时 D和M一起开 非常可惜一题都没过,D题我们用了主席树加二分 复杂度是 nlogn2nlogn^2nlogn2 一直 t 可能这个复杂度就是过不了的,M题是一道计算几何 ,这道题一直是我其他两个队友在写 ,好像最后题解出来说和我们的想法差不太多,最后三题拿下铜牌~

A

袋鼠题~这道题容易想到 先模拟一遍哪些会因为离开边界而离开地图,这样之后会得到一个矩形,通过这个矩形我们再模拟一遍排列,就可以发现只需要对这个区间进行二维差分,最后在一般二维前缀和就可以解决了,最后判断一遍每个格子是否等于k

#include<bits/stdc++.h>using namespace std;void solve() {int n, m, k;cin >> n >> m >> k;vector<vector<int>> mp(n+10, vector<int>(m+10));vector<vector<int>> vis(n+10, vector<int>(m+10));string s;cin >> s;int L = 1, R = m;int U = 1, D = n;int curL = 1, curR = m;int curU = 1, curD = n;for (int i = 0; i < s.length(); i++) {if (s[i] == 'L') {curL++, curR++;} else if (s[i] == 'R') {curL--; curR--;} else if (s[i] == 'U') {curU++; curD++;} else {curU--; curD--;}L = max(curL, L);R = min(curR, R);U = max(curU, U);D = min(curD, D);}if (U > D || L > R) {if (k == 0) cout << n * m << '\n';else cout << 0 << '\n';return;}int xa = U, ya = L;int xb = D, yb = R;auto add = [&](int x1, int y1, int x2, int y2) {if (vis[x1][y1]) return;vis[x1][y1] = 1;mp[x1][y1]++;mp[x2+1][y1]--;mp[x1][y2+1]--;mp[x2+1][y2+1]++;};add(xa, ya, xb, yb);for (int i = 0; i < s.length(); i++) {if (s[i] == 'L') {ya--; yb--;} else if (s[i] == 'R') {ya++; yb++;} else if (s[i] == 'U') {xa--; xb--;} else {xa++; xb++;}add(xa, ya, xb, yb);}for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {mp[i][j] += mp[i-1][j] + mp[i][j-1] - mp[i-1][j-1];//cout << mp[i][j] << ' ';}// cout << '\n';}int cnt = (D - U + 1) * (R - L + 1);int ans = 0;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (cnt - mp[i][j] == k) ans++;}}cout << ans << '\n';
}int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);    int T;cin >> T;while (T--) solve();return 0;
}

G

贪心策略,能选合并就合并,不能合并就选择加一只。
这里我们用了二分,直接二分最多需要多少次合并

#include<bits/stdc++.h>using namespace std;void solve() {int n;cin >> n;int x = 1, y = 1;vector<int> events(n);for (int i = 0; i < n; i++) cin >> events[i];auto check = [&](int pos, bool ans) -> bool {int x = 1, y = 1;for (int i = 0; i < n; i++) {int op = events[i];if (op == 0) {if (pos <= i) op = -1;else op = 1;}if (op == -1) {if (y < 2) return false;y--;} else {x++; y++;} }if (ans) {int g = __gcd(x, y);x /= g; y /= g;cout << x << ' ' << y << '\n';}return true;};int ans = n;int l = 0, r = n-1;while (l <= r) {int mid = (l + r) >> 1;if (check(mid, false)) {ans = mid;r = mid - 1;} else {l = mid + 1;}}if (!check(ans, true)) cout << -1 << '\n';
}int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);    int T;cin >> T;while (T--) solve();return 0;
}

I

签到~

#include<bits/stdc++.h>using namespace std;void solve() {string s;cin >> s;vector<int> cnt(26);for (int i = 0; i < s.length(); i++) cnt[s[i] - 'a']++;sort(cnt.begin(), cnt.end());cout << s.length() - cnt.back() << '\n';
}int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);    int T;cin >> T;while (T--) solve();return 0;
}

2022 ICPC 南京站相关推荐

  1. 2020 ICPC 南京站 F Fireworks (概率论+三分)

    题目链接:F-Fireworks_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京) 题目描述 Kotori is practicing making fireworks for the ...

  2. 2020 ICPC 南京站 M Monster Hunter (树形DP)

    题目链接:M-Monster Hunter_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京) 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5 ...

  3. 2019 ICPC南京站总结

    人生第一场 ICPC 区域赛,血崩 去比赛之前看到参赛手册,清一色的强队,对拿奖没抱太大希望,只想着能出几个就出几个,尽最大努力就好了 周六下午热身赛,记错时间了去晚了尽半个小时,到场后先测了测 ID ...

  4. 2022 ICPC 西安站 赛后总结

      喜提铜牌一枚.   不用担心说俺们澳门站牌子水了,还有西安(虽然西安也有点水,不是南京.上海那种卷站,当天还有CCPC分流).   不过铜牌在应聘的时候还是不太够看,银牌都是标配了.   好了言归 ...

  5. 2021 ICPC 南京站总结以及真题PDF

    文章目录 记第一次ICPC The 2021 Asia Nanjing Regional Contest 记第一次ICPC 2021/12/4,参加了第一次 ICPC 比赛,说实话,比赛前的心态已经觉 ...

  6. 2019 ACM/ICPC 南京站 E.Observation,区间筛

    题目大意 求 (∑d=LR(fdxor K))(modP)\Big(\sum\limits_{d=L}^{R} (f_d\text{ xor } K)\Big)\pmod{P}(d=L∑R​(fd​  ...

  7. 2018 ACM/ICPC 南京站小结

    第一次打现场赛,又是在半主场,其实挺激动的,但是结果不尽人意 热身赛 开幕式后的热身赛就打得有些问题,四个题都不难,我们都想到了做法,但因为机时不够+细节问题导致前两个小时一直没有过题,然后AC的三道 ...

  8. Codeforces gym101981 (2018 icpc 南京站) B.Tournament

    一条直线上有N个村庄,要在这条直线上选K个地方建雕像,使得每个村庄到离其最近的雕像的距离的和最小.输出最小的和.(范围1e5) 首先考虑一堆村庄建一个雕像,则最优方案一定是放在中间的村庄(偶数的话中间 ...

  9. 2022 ICPC南京 B

    一眼前缀DP+后缀DP,中间枚举之后用某种数据结构处理出来区间最值 然后选择了复杂度多了个log并常数非常大的线段树,写起来很麻烦,但debug时间不是很长,好在还是卡过去了 不知道是gym的机子太垃 ...

最新文章

  1. Linux内核网络栈1.2.13-socket.c函数概述
  2. 树形数据深度排序处理示例(递归法).sql
  3. Latent dirichlet allocation note -- Prepare
  4. BGP 路由表即将突破 768k
  5. 南通大学教务管理微信体验
  6. 数据预处理第7讲:具有离群点数据的缩放方法比较
  7. Bondareva-Shapley 定理
  8. python重启电脑
  9. nginx代理安装ssl证书
  10. 企鹅号不更新会封_我们如何为企鹅基金会筹集60,000美元
  11. pm3包1.4版本发布----一个用于3组倾向性评分的R包
  12. 和信贷接入百行征信之后......
  13. 中考计算机必背知识点,语文中考必背知识考点(完整版)
  14. 有关time的一系列python使用方法
  15. CityMaker学习教程13 osg模型的移动
  16. 世界四大汽车生产公司
  17. PHP基本语法--php基础最详细教程
  18. 当Java、C++、Python等编程语言都变成软妹子
  19. mysql意见反馈表设计_山西省住房和城乡建设厅 关于开展2021年度山西省建设工程企业信用评价工作的通知(第209号)...
  20. 虚拟机 如何打开3D加速

热门文章

  1. 【C】编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
  2. 优惠券系统-第一章-系统设计
  3. 四阶魔方java1002四阶魔方java_魔方小站四阶魔方视频教程 包你学会的魔方教程(魔方玩法视频教程+还原公式图解+3D动画)...
  4. 单片机故障排除篇--如何判定是硬件问题还是软件问题?
  5. 华为手机备份app从内部恢复
  6. PGSQL插入或者更新的语法
  7. python实现Content-Type: multipart/form-data; boundary=xxx接口的调用
  8. 蛇形矩阵(3月23日)
  9. 特殊符号+运算优先级
  10. 怎么在条码打印软件中制作超市价签