No Problem

暴力

Str

存在循环节,大力找出来即可,长度显然不超过 \(10^3\) .

Not TSP

题面

TSP 问题,但是游览第 \(u\) 个点要满足下列条件之一

  1. \(1\dots u-1\) 均被游览过 .
  2. \(1\dots u-1\) 均未被游览过 .

题解

肯定是先往左跳然后往右填 .

dp 一下就好了 .

\(dp_{i,j}\) 表示 \(i\) 跳到 \(j\) .

代码

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
template<typename T>
inline int chkmin(T& a, const T& b){if (a > b) a = b; return a;}
template<typename T>
inline int chkmax(T& a, const T& b){if (a < b) a = b; return a;}
const int N = 1555;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
ll n, d[N][N], dp[N][N], s[N], pre[N];
inline ll gg(int l, int r){return max(0ll, s[r-1] - s[l-1]);}
int main()
{
scanf("%lld", &n);
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++) scanf("%lld", d[i]+j);
for (int i=1; i<=n; i++) s[i] = s[i-1] + d[i-1][i];
for (int i=0; i<=n; i++){dp[0][i] = s[i]; d[0][i] = d[1][i];}
for (int i=2; i<=n; i++)
{
for (int j=0; j<i-1; j++) dp[j][i] = dp[j][j+1] + s[i] - s[j+1];
dp[i-1][i] = INF;
for (int j=0; j<i-1; j++) chkmin(dp[i-1][i], dp[j][i-1] + d[j][i]);
}
ll ans = INF;
for (int i=1; i<n; i++) chkmin(ans, dp[i][n]);
printf("%lld\n", ans);
return 0;
}

Game

题面

Alice 和 Bob 在做游戏 .

平面上有 \(n\) 个点,Alice 先手,每次每个人需要画一条平行于 \(x\) 或 \(y\) 轴的一条直线,穿过前一条直线穿过的某个点 . 不能画与之前直线重合的直线 . 不能操作的人输 .

问谁必胜 .

题解

如果有一个点 \(x,y\),就连一条边 \(x\to y\),这相当于是两条直线在转移 .

于是问题就等价于 Alice 和 Bob 在这张图上走,走过的点不能再走 .

然而我们把 \(x,y\) 取出来,会发现这玩意其实是一个二分图 .

这个有一个结论:后手必胜当且仅当图有完备匹配 .

证明:

如果有匹配:Alice 每动一步 Bob 就跑去它的匹配点,这样最后 Alice 就无路可走了 .

若不然:Alice 选一个不在匹配中的点,Bob 会选一个在匹配中的点,这样 Alice 就可以用上面的策略取胜了 .

代码

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
template<typename T>
inline int chkmin(T& a, const T& b){if (a > b) a = b; return a;}
template<typename T>
inline int chkmax(T& a, const T& b){if (a < b) a = b; return a;}
const int N = 1555;
template<typename T>
struct pool
{
unordered_map<T, unsigned> pol;
unsigned cc = 0;
unsigned get(T x)
{
auto ptr = pol.find(x);
if (ptr == pol.end()){pol[x] = ++cc; return cc;}
else return ptr -> second;
}
};
pool<int> T;
int n, vis[N], L[N], R[N];
vector<int> g[N];
set<int> vx, vy;
inline void addedge(int u, int v){g[u].emplace_back(v);}
bool dfs(int u, int t)
{
if (vis[u] == t) return false;
vis[u] = t;
for (int v : g[u])
if (!L[v] || dfs(L[v], t)){L[v] = u; R[u] = v; return true;}
return false;
}
inline void match(){for (int i=1; i<=n; i++) dfs(i, i);}
int main()
{
scanf("%d", &n);
for (int i=1, x, y; i<=n; i++)
{
scanf("%d%d", &x, &y);
x = T.get(x); y = T.get(y);
vx.insert(x); vy.insert(y);
addedge(x, y);
}
if (vx.size() != vy.size()){puts("Alice"); return 0;}
match();
for (int i : vx) if (!R[i]){puts("Alice"); return 0;}
for (int i : vy) if (!L[i]){puts("Alice"); return 0;}
puts("Bob");
return 0;
}

丽泽普及2022交流赛day19 半社论的更多相关文章

  1. 丽泽普及2022交流赛day22 无社论

    开始掉分模式 . T3 有人上费用流了???(id) 不用 TOC 了 . T1 暴力 T2 没看见 任意两圆不相交,gg 包含关系容易维护,特判相切 . 单调栈即可 T3 贪心 T4 神秘题

  2. 丽泽普及2022交流赛day20 1/4社论

    目录 T1 正方形 T2 玩蛇 T3 嗷呜 T4 开车 T1 正方形 略 T2 玩蛇 略 T3 嗷呜 (插一个删一个?) 找出相同的,丢掉循环节 . 感觉非常离谱,,, 正确性存疑 正确性问 SoyT ...

  3. 丽泽普及2022交流赛day15 社论

    前言 link 太牛逼了,补完我一定放代码 . orz 越看越牛逼 orz . 时间复杂度都是口胡,不要信 . 以下是目录 目录 目录 前言 A 题面 题解 代码 B 题面 题解 代码 C 题面 题解 ...

  4. 丽泽普及2022交流赛day21 社论

    A 暴力 . greater<double> -> greater<int> \(100\) -> \(50\) 代码丢了 . B dp . 考场上代码抢救一下就过 ...

  5. 丽泽普及2022交流赛day18 社论

    A 暴力扫一遍 B 算法 0 似乎是二分 算法 1 随便贪心 C 算法 1 枚举一个点作为最大值 / 最小值,用单调栈维护其作为答案的左右端点即可轻易计算 . 时间复杂度 \(O(n)\) . 算法 ...

  6. 丽泽普及2022交流赛day17 社论

    http://zhengruioi.com/contest/1088 SoyTony 重新 rk1 . stO SoyTony Orz 省流:俩计数 . 目录 目录 A 题面 题解 Key 算法 1( ...

  7. 丽泽普及2022交流赛day16 社论

    这场比较平凡吧 . 省流: http://zhengruioi.com/contest/1087 目录 目录 A. Gene 题面 题解 算法一(正解) 算法二 B. Fight 题面 题解 算法一( ...

  8. 丽泽普及2022交流赛day14

    目录 A 题面 题解 B 题面 题解 C 题面 题解 D 题面 题解 A 题面 一个 \(1\dots n\) 的排列 \(p\) 和一个 \(1\dots n-1\) 的排列 \(q\) 满足 对排 ...

  9. 青岛理工ACM交流赛 J题 数格子算面积

    数格子算面积 Time Limit: 1000MS Memory limit: 262144K 题目描述 给你一个多边形(用’\’和’/’表示多边形的边),求多边形的面积. 输入  第一行两个正整数h ...

随机推荐

  1. 一文彻底搞懂JavaScript中的prototype

    prototype初步认识 在学习JavaScript中,遇到了prototype,经过一番了解,知道它是可以进行动态扩展的 function Func(){}; var func1 = new Fu ...

  2. Spring Cloud Feign+Hystrix自定义异常处理

    开启Hystrix spring-cloud-dependencies Dalston版本之后,默认Feign对Hystrix的支持默认是关闭的,需要手动开启. feign.hystrix.enabl ...

  3. 使用NE555实现的延时开关电路

    NE555 的工作机制 先了解 NE555 的 Trigger(Pin2) 和 Threshold(Pin6) 如何检测电压并控制输出 如果 Trigger(Pin2) 检测到任何低于电源电压1/3的 ...

  4. SpringBoot进阶教程(七十四)整合ELK

    在上一篇文章<SpringBoot进阶教程(七十三)整合elasticsearch >,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义.安装及使用 ...

  5. [2021-TKK 暑期训练第一场] 1585:下馆子-3

    题目做了超链接 参考官方题解,作部分优化 下馆子 -3 题意: 给定n组数据,由name,time构成 当只有一个最大值时,输出该同学 当不止有一个最大值时,输出最先大于等于max次的同学 题解: 考 ...

  6. [USACO2021DEC] HILO 踩标做法

    [USACO2021DEC] HILO Solution 参考自 官方题解 里提到的一篇 Obliteration.pdf,但是里面作者写出了极多错误...然后式子还错错得对了. 令 \(y=n-x\ ...

  7. 解惑unittest框架中导入HTMLTestRunner模块后正常运行却无法生成HTML报告问题

    1.HTMLTestRunner介绍 HTMLTestRunner是一个第三方的unittest HTML报告库,用于python单元测试框架的TestRunner.它是生成一个HTML报告,以一目了 ...

  8. CabloyJS全栈开发之旅(1):NodeJS后端编译打包全攻略

    背景 毋庸置疑,NodeJS全栈开发包括NodeJS在前端的应用,也包括NodeJS在后端的应用.CabloyJS前端采用Vue+Framework7,采用Webpack进行打包.CabloyJS后端 ...

  9. Tensorboard SummaryWriter()

    import torch import torch.nn as nn import torch.nn.functional as F import torchvision import torchvi ...

  10. GDKOI 2021 Day2 TG 总结

    又是爆炸的一天,炸多了本蒟蒻已经习以为常 但今天比昨天整整高了 40 分!!!!却还是没有 100 今天本蒟蒻本想模仿奆佬的打字速度,结果思路混乱让我无法开始 T1 不是吧怎么是期望 dp ,期望值怎 ...