当前位置: 首页 > news >正文

AT AGC005 题解

A

栈维护括号匹配,\(S \to (, T \to )\)

#include <bits/stdc++.h>using i64 = long long;void solve() {std::string s;std::cin >> s;std::stack<char> stc;for (auto i : s) {if (i == 'T' && stc.size()) {if (stc.top() == 'S') {stc.pop(); continue;}}stc.push(i);}std::cout << stc.size() << "\n";
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);solve();return 0;
}

B

一开始看错题了,注意题目表达的是“所有子区间最小值之和”,考虑平衡树。将所有元素按照 \((a_i, i)\) 绑入,按照 \(a_i\) 的大小排序之后按次插入平衡树中,每次去找当前位置的前驱后继就可以了,统计答案是简单的乘法原理。

#include <bits/stdc++.h>
#include <bits/extc++.h> using i64 = long long;constexpr int N = 2e5 + 7;int n;
i64 ans;struct Elem {int v, i;bool operator < (const Elem &rhs) const {return v < rhs.v;}
};int a[N];std::vector<Elem> vec;
__gnu_pbds::tree<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update> tr;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cin >> n;for (int i = 1; i <= n; i++) {std::cin >> a[i];vec.push_back({a[i], i});}std::sort(vec.begin(), vec.end());tr.insert(0); tr.insert(n + 1);for (const auto &[v, i] : vec) {int l = i - *tr.upper_bound(i), r = *std::prev(tr.lower_bound(i)) - i;ans += 1ll * v * l * r;tr.insert(i);}std::cout << ans << "\n";return 0;
}

C

究极无敌简单题。考虑树上最远距离就是直径,找到距离最远的两个点抓出来做匹配,容易发现其实就是走到中点前降、走过中点之后升的这么一个过程,开桶每次匹配两个上去,如果匹配不上报告无解。

#include <bits/stdc++.h>using i64 = long long;constexpr int N = 107;int n, mxd;
int a[N], cnt[N];int work() {int mid = mxd / 2 + 1;for (int i = mid; i <= mxd; i++) {cnt[i] -= 2;if (cnt[i] < 0)return 0;} if (!(mxd & 1)) {cnt[mid - 1]--;if (cnt[mid - 1] < 0)return 0;mid--;}for (int i = 1; i <= mid; i++) {if (cnt[i])return 0;}return 1;
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cin >> n;for (int i = 1; i <= n; i++) {std::cin >> a[i];cnt[a[i]]++;mxd = std::max(mxd, a[i]);}std::cout << (work() ? "Possible" : "Impossible") << "\n";return 0;
}
http://www.jsqmd.com/news/47304/

相关文章:

  • Spring Security-PasswordEncoder密码解析器详解和自定义登录逻辑
  • 2025 胶管厂家最新推荐排行榜:耐高压 35MPa / 热熔 / 特种工况优质品牌精选矿用/大口径吸排泥/低压/耐高温/钢丝编制/输油胶管公司推荐
  • 2025 装盒机厂家最新推荐排行榜:全自动 / 食品 / 纸巾 / 卫生巾装盒机权威测评,技术创新与整线配套能力
  • 模板进阶:从非类型参数到分离编译,吃透 C++ 泛型编程的核心逻辑 - 详解
  • 机械 / 汽车 / 电子设计师必看!Creo 11.0 下载安装,创成式设计 + 实时仿真
  • Linux 中截取文本的最后几个字符
  • 2025年新疆初三复读班权威推荐榜单:中考复读/初三集训班/本地中考复读学校精选
  • 11.20题解
  • 11.21题解
  • 黔东南苗族侗族自治州一对一家教机构推荐,2025教育机构靠谱测评排行榜
  • 面向对象程序设计-三次单部电梯调度问题总结
  • 2025年鹌鹑蛋蒸煮剥壳流水线实力厂家权威推荐榜单:鹌鹑蛋煮蛋机/鹌鹑蛋剥壳机/鹌鹑蛋剥壳线源头厂家精选
  • NHVR-20 型油气回收在线监测系统:工业级全场景油气泄漏防控方案 - 详解
  • 9 个步骤教你如何安全地迁移数据库或字段
  • 衡水市一对一家教机构推荐,2026最新辅导机构口碑排行榜
  • 黔西南布依族苗族自治州一对一家教机构推荐,2025最新教育机构权威测评榜单
  • 铜仁市一对一家教机构推荐,2025最新教育机构靠谱测评榜单
  • 承德市一对一家教机构推荐,2026最新辅导机构权威测评榜单
  • 2025年11月工业CT厂家推荐榜:权威评测与综合对比分析
  • 2025年二手淀粉加工设备定制厂家权威推荐榜单:二手小型淀粉设备/二手红薯淀粉加工设备/二手淀粉设备源头厂家精选
  • 2025年11月工业CT厂家评测榜单:结合政策导向与市场反馈的客观分析
  • 2025年新疆高三复读班权威推荐榜单:高三补习班/高三复读全日制/私立高中学校精选
  • Json C语言嵌套遍历Json节点
  • Java企业级Function Calling落地:JBoltAI的架构设计与实践之道
  • AI知识库检索的精度与召回平衡之道:JBoltAI的技术实践
  • AI原生应用:Java架构师的下一站,不是打补丁,是范式革新
  • 邢台市一对一家教机构推荐,2025最新教育机构权威测评榜单
  • AI开发别再“大材小用”:JBoltAI的分流策略让效率与成本双向最优
  • 毕节市一对一家教机构推荐,2025最新教育机构权威测评榜单
  • 1v1视频源码,js实现滚动到某个位置动画 - 云豹科技