训练
剁diodio
这个作者很懒,什么都没留下…
展开
-
直线的个数(set的应用)
注意点在于set要重载所有元素#include<bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<LL,LL>pii;const int N=2e3+50;vector<pii>G[N];LL dis[N];struct node{ LL a,b,c; bool operator < (const node &t)const{ .原创 2022-01-17 21:06:36 · 103 阅读 · 0 评论 -
台州学院ACM集训队月赛(元旦场)
比赛地址戳这里1001 : 数学题:求极限:1002 : maomeng的成就题解:对于某一个物品i,我们可以选择他的第一个成就,或者选择第二个成就,又或者不选,这样我们就可以使用dfs,来遍历所有情况。时间复杂度为O(3^10).#include<bits/stdc++.h>using namespace std;const int N=10+5,mod=1e9+7;typedef long long LL;int tt[N],m[N],T[N],M[N];int n原创 2022-01-01 16:20:05 · 887 阅读 · 0 评论 -
acwing 周赛31 4202. 穿过圆 bitset优化
题目描述:题解:因为两个点之间可以任意走,然后我们只用穿过包含该点的圆,那么答案就是就是两个点被包含的圆减点两个点都被包围的圆。那如何快速求呢。这里我们用到了bitset,在第j个点的第i位为1,表示这个点被第j个圆包围,这样我们就可以就两个bitset做与操作快速求出他们共同包含的点了。然后预处理他们各自包含几个圆相减即可。#include<bits/stdc++.h>using namespace std;const int N=1e4+5;typedef long long原创 2021-12-30 21:16:17 · 544 阅读 · 0 评论 -
AtCoder Beginner Contest 233 F - Swap and Sort(并查集+dfs)
题目描述:我们有一个关于(1—N)的全排列P;现在给出m次操作。每次操作包含x和y。该操作可以交换Px与Py的值。现在问你是否可以通过最多执行 5×105次操作对 P 进行排序操作可以交换顺序。如果可能,请给出一个这样的操作序列。 否则输出-1。题解:我们将交换操作抽象成图,这样我们根据并查集判断i与p[i]是否在同一联通分量之中,如果所有i与对应p[i]都可以在同一联通分量找到,我们就开始匹配。先找到叶子节点,因为只有先将叶子节点固定了,我们才能够操作他的父节点。那用两次dfs就可以了。原创 2021-12-30 21:01:30 · 394 阅读 · 0 评论 -
(AtCoder Beginner Contest 232) E - Rook Path dp+组合数
题目大意:给定一个 h*w(0<w,h<1e9) 的棋盘,现在有一个象棋棋子“车”在(x1,y1)现在你能执行k步走到( x2 , y2 ),请问有几种走法。题解用dp来处理行和列,一种是在当前行,另一种是不在当前行,即分别为dp[1],dp[0];那么如果我在i步内能到达即是dp[1][i],不能到就是dp[0][i]这样就可以写出转移方程:dp[i][1]=dp[i-1][0];//注意dp[i][1]不也可以由dp[i-1][1]转移得到,因为移动0步不算一次操作。dp[i原创 2021-12-20 21:16:37 · 485 阅读 · 1 评论 -
牛客练习赛90 题解
C 盾与战锤D 妄想集合样例输入:5 51 10 2 6 2Ask 1 3Quant 1 2 5Ask 1 3Quant 1 4 5Ask 4 5样例输出:NOYESYES主要是如何原创 2021-11-13 14:08:07 · 247 阅读 · 0 评论 -
(AtCoder Beginner Contest 225) E - 7
题意:给你n给点,第i个点坐标为(xi,yi)则由这个点扩展成一个“7”字形三个点分别为(xi-1,yi),(xi,yi),(xi,yi-1)。现在想要求出删去几个七字形剩下的最多完全可视( wholly visible)的“7”字形有几个?何为完全可视:将三点中的两点与原点连边;如下图所示:这两个七字形就不为完全可视。输入样例:31 12 11 2输出样例:2题解:这题主要思路是贪心将七字形两条斜边的斜率分别定为左边界和右边界将其按照左端点排序,经行类似区间覆盖的贪心原创 2021-11-01 11:49:48 · 164 阅读 · 0 评论 -
tzoj 官方竞赛集训队个人赛(五)题解
E:背包问题题解:因为m有范围。我们发现所有物品的体积范围最大不超过1050000。说明物品的体积最大超过容量55000.所以我们对剩余体积(remin)进行反向背包计算出至少大于remin的最小价值。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N=6e4+50;int main(){ int t; scanf("%d",&t); while(t--) {原创 2021-09-22 13:11:59 · 761 阅读 · 1 评论