- 博客(7)
- 收藏
- 关注
原创 2018-2019 ACM-ICPC Brazil Subregional Programming Contest题解
全补完了,发个题解。A.Slackline Adventure题意:给定n * m个点,求出有多少点对满足两点连线上没有其他点,且两点之间距离在l到r之间。做法:两点相邻的情况单独计算。那么每一个点对等价于一个矩形,矩形对角线上没有点且对角线长度在l到r之间。考虑枚举矩形的长和宽,可以得到答案为 2∑i=1n−1∑j=1m−1(n−i)(m−j)[gcd(i,j)=1][l2≤i2+j2≤r2]2\sum_{i = 1}^{n - 1} \sum_{j = 1}^{m - 1} (n - i)(m
2022-05-09 17:08:25
974
原创 2018 ICPC 南京
链接A.Adrien and Austin题意:给定n个石头,每次可以取走连续的长度不超过K的连续石头,若无法进行操作即失败。博弈论,若先手能将序列变成对称的两部分则必胜,否则必败。#include <bits/stdc++.h>using namespace std;int main(){ int n, k; cin >> n >> k; if(k != 1){ if(n) cout <&l.
2021-10-21 14:48:25
201
原创 2019 SWERC
A.Environment-Friendly Travel题意:给定n个点,找出从从1 ~ n走的距离不超过B的花费最少的路径。由于最长路径长度不超过100,我们用对于每个点求出当前花费为c时,花费的最小代价。#include <bits/stdc++.h> using namespace std;const int maxn = 1010;struct Node{ int val, id; Node(int val = 0, int id = 0) .
2021-10-21 14:20:57
205
原创 传递闭包优化建图
Lev OJ P1678题意:给定个点和条有向边,每个点都有一个权值,若,则有一条从到的单向边,边的权值都为1,求单源最短路。首先定义集合为的二进制表示下所有为1的位置的下标组成的集合,例如。则一定有,根据子集关系的传递性,我们有,那么原先需要连的三条边便可以通过传递性优化为。那么对于,我们只需要向所有满足的连边即可,由于这样的最多存在个,那么我们就可以将总边数从优化至,复杂度便可以接受了。#include <cstdio>#include <algorithm&g..
2021-10-20 15:44:32
602
原创 2020-2021 ACM-ICPC Latin American Regional Programming Contest题解
这场体验极佳。B.Beautiful Mountains题意:将满足前一段单调不减,后一段单调不增且长度不小于3的序列称为山形序列,给定一个序列,问是否可以找到一个k,使得将序列划分成若干个长度为k的子段后,每一段都是山形序列,最后一段的长度可以小于k。-1可以视为任意数字。考虑暴力枚举k,判断是否可行。对于第i个位置,预处理出向右和向左的最长连续不增字段的长度和,对于字段,若,则该字段为山形序列。由调和级数知时间复杂度为#include <bits/stdc++.h>.
2021-10-16 20:38:17
2020
原创 2021HDU多校第一场题解
1001. Mod, Or and Everything题意:给你一个,求对于任意,按位或的和。显然对于,可以取到的所有值,对于,一定小于,所以答案一定为2的次幂 - 1,打表找一下具体是多少次幂即可#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#include <iostream>
2021-10-16 18:28:02
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人