首页 > TAG信息列表 > Rep
9.13-CSP-S模拟5
由于某些原因,现在改为发单篇博客的形式 9.13CSP-S模拟5 T1 F 比较水的一眼题,先没看题观察数据范围发现是n方的,读题发现显然可能合法的x只有\(O(n)\)个,就是拿\(a_1\)和所有的b异或一遍就行了,别的x既然\(a_1\)都异或不出来那显然不可能,对于一个数,它异或另一个数能得到x的话,那么异或题解【P5004 专心OI - 跳房子】
本题的找规律题解到此为止。 为防止新人受到误导,不再接受新的此类题解。 以前的保留不会删除,但请不要再提交。 题目传送门。 矩阵加速模板题吧。给一个正经的不用找规律的做法。 考虑设 \(F_n\) 表示前 \(n\) 个格子的答案,\(f_n\) 表示最后降落在 \(n\) 的方案数,显然有 \(F_n=F_{区间交集
题目链接:区间交集 分析: 贪心 先将每个区间按左端点从小到大排序,同时用小根堆来维护区间右端点 对于若干区间的交集的长度为这些区间的右端点的最小值 - 这些区间的左端点的最大值 代码实现 #include <bits/extc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using namCF575A Fibonotci
题意 给定一个无限的序列 \(s\),周期为 \(n\),并给定 \(s_{0\sim n-1}\)。在给定 \(m\) 个位置修改 \(s\) 的值。 对于一个 \(f\),有 \(f_i=s_{i-1}f_{i-1}+s_{i-2}f_{i-2}\),求 \(f_k\mod p\)。 Solution 由于 \(k\) 比较大,所以一眼考虑快速幂。很快可以推出转移矩阵: \[\begin{bmatri题解 P2971【[USACO10HOL]Cow Politics G】
似乎是一个很简洁的新做法。 显然 \(k\) 个点集互不干扰,可以分开处理。 对于每个点集,首先取出两个点 \(u,v\) 作为最远的两个点(为表述方便下文称为直径),然后考虑向点集中加入点 \(w\) 的过程。我们计算出 \(d_1=\operatorname{dis}(u,v),d_2=\operatorname{dis}(u,w),d_3=\operatorCodeforces Round #814 (Div. 2) A-F
Codeforces Round #814 (Div. 2) 传送门 A 题意:棋子在左下角,两个人轮流操作,每次可以向上或向右移动奇数位,谁先无法操作谁输,给定棋盘大小,问最后谁赢。 分析:直接\((n+m)\&1\)即可。因为总共移动\(n+m-2\)次,以为移动奇数位,故在两个人移动后\(n+m-2\)的奇偶性不变,所以当总路程为偶数时Petrozavodsk Summer 2022. Day 1. Welcome Contest
Petrozavodsk Summer 2022. Day 1. Welcome Contest 是不是又开新坑了,毛营我来了! 挑几道自己会的 & 有意思 的题写题解 QwQ D - Double Sort 给定 \(n,m(n\leq m)\),随机一个值域在 \([1,m]\) 且数字不重复的的长度为 \(n\) 的序列 \(a_i\)。 令 \(a_0=0\),将 \(a\) 数组排序,差分,再洛谷 P3810 【模板】三维偏序(陌上花开)
原题链接 第一维直接排序,然后cdq分治+树状数组 对于分治的左右区间,区间内部按照第二维排序(已按第一维排序好了,就算打乱顺序,左右区间整体的第一维的偏序关系也不会受到影响) 然后遍历右区间的元素,把左区间的第二维小于当前元素的加入树状数组,统计答案即可,因为区间内部第二维都是单调# Educational Codeforces Round 135 (Rated for Div. 2) A-E
Educational Codeforces Round 135 (Rated for Div. 2) 传送门 A 题意: 给定n个颜色的各自的数量,每次可以使用两个不同的颜料,问最后可能剩下哪种颜料,输出任意一个即可。 分析:直接输出个数最多的那个颜料即可 void solve(){ int n;cin>>n; vector<int>a(n+1); rep(i,1,nCSP集训题解
CSP集训题解 Summer已经完结了于是新开一个,而且旧的已经很卡了 9.9CSP-S短赛2(开小灶2) T1 元素周期表 看来是一种套路,将每个点对应的x,y坐标连边,在一个联通块内的就是可达的,那么答案就是联通块数减一 点击查看代码 #include <bits/stdc++.h> typedef long long ll;typedef unsiGYM100851 F - Froggy Ford(最短路铜牌题)
题意: 现在有一条河,河中有n个石头,你需要从河的一端到河的另一端。现在你有一次机会在任意位置放置一个石头,请问石头放在哪里可以使过河的最长路径最短。请输出放置的石头坐标。 思路: n的规模是\(1e3\),所以可以做到\(n^2\)的算法,我们把起点和终点也当做一块石头,基于贪心的思想C20220806T1 暴力计算
给定一张图,按照边权走,求总边权达到 \(M\) 时用的最短长度。 \(n\leq 100,M\leq 10^{18}\) 。 首先可以用 \(dp[i][j][k]\) 表示从 \(i\) 出发通过 \(2^k\) 步走到 \(j\) 能产生的最大价值。 那么有 \(dp[i][j][k]=\max\{dp[i][x][k-1]+dp[x][j][k-1]\}\) ,可以用floyd来转移,然后再The 2021 Shanghai Collegiate Programming Contest D. Zztrans 的班级合照
计数dp好题 用组合数想了一下,需要容斥,情况太复杂 用计数dp,\(dp[i][j]\)表示前\(i\)个人有\(j\)个在第一排,并且按照身高遍历i,这样满足了第一个偏序关系(“排成人数相同的两排,每排从左向右身高都不递减”),然后只要保证第二排的人数少于等于第一排的人数,就能满足第二个偏序关系(“且第二Educational DP Contest G - Longest Path
目录题目思路代码 题目 给定一个有向无环图,叫你求图中的最长路径 思路 记忆化搜索,定义 f[i] : 表示从点i开始的最长路径长度,那么很容易得出转移方程为 \(f_i = max(f_i, f_j+1)\),j为i的子节点 代码 点击查看代码 /* * @Descripttion: * @Author: Echo * @version: * @Date: 2HDU2022 第一场
Backpack 我不打 但我能补题。 明显设\(f_j\)表示容量为j的背包的异或的最大值。但是这样的状态难以进行转移。 考虑设\(f_{j,k}\)表示容量为j异或为k是否可行。 这样状态数为\(2^20\) 但是枚举物品更新达到了\(2^30\) 明显贪心在这个背包类型问题难以解决。考虑优化这个dp。 至少[题解] Atcoder Regular Contest ARC 146 A B C D 题解
点我看题 A - Three Cards 先把所有数按位数从多到少排序,答案的位数一定等于位数最多的三个数的位数之和\(tot\)。对于每个i,把有i位的数排序,并记录每个i的排序结果。最后枚举答案中三个数最靠前的数\(a_i\),然后枚举第二个数的长度\(lenj\),取长度为lenj的数中最大的。如果这个最大网络最大流三题
昨天杭电多校1001题人均过,该学学网络流了(虽然dls说过,网络流只能出金牌题) 在b站看了电子科大的网络流入门,学会了dinic的板子,还不会严格证明 求单源单汇的最大流,简单来说就是只要残量网络能够到达汇点,就跑一遍增广路,然后再求残量网络,再跑增广路……直到汇点无法到达。 关键点:建反向ABAP直接修改程序代码
*&---------------------------------------------------------------------**& Report Y_MOD_PRG*&---------------------------------------------------------------------**&*&--------------------------------------------------------------------Codeforces Round #813 (Div. 2)A-D
Codeforces Round #813 (Div. 2)A-D 过程 本场A,B快速签到,但C卡了一下,D做法一开始直接把小的变大,然后发现假了,把自己hack了,随后想到了三分寻找最合适的变连续的一串从小到大的数字,但还是假了,只能赛后补提了。 传送门 题目 A 统计前k个数里面有多少个大于k即可 void Solve(){ cin>>AcWing 1282. 搜索关键词 & 洛谷 P3808 【模板】AC 自动机(简单版)
AC自动机的板子 感觉非常合理,但是又不会证明,就先这样吧 感觉还有至少三个问题: 1、为什么要在空的子结点上连自己的fail结点的对应子结点(注释1) 2、为什么u结点不需要参与转移(注释2) 3、为什么遇到end == -1就可以break(注释3) #include<bits/stdc++.h> using namespace std; #define2022牛客多校第七场
2022牛客多校第七场 过程 本场首先C题签到,一道小构造,随后F想了想直接暴力删除即可,之后G在理解题意后做出,随后便开始坐牢,队友和我在J上的dp为五次方,没敢下手,,随后在最后时刻想明白了K,但已经没时间下手了,惨淡收场。 题解 C 生成一个排列使得\(P_i\not ={}A_i\),首先如果\(A_i\)全相等【CF1103D】 Professional layer 题解 (状压 dp)
CF 传送门 | 洛谷传送门 状压 dp。 Solution 发现有些题解对一些细节部分没有说明,导致某些实现部分没得到证明。 约定:记题面中的因数上限 \(k\) 为 \(limit\)。 1 记所有数的最大公因数为 \(res\)。 稍加思考可以发现,如果我想使用一个数去消除掉 \(res\) 的一个质因数 \(x\),必须要二分图(粗糙的体会)
相关定义 二分图(偶图)是一种无向图:其中的顶点可以分为两个交集为空的集合X和Y,对于途中的每条边,其中一个端点在X中,另一个端点在Y中,且X和Y内部顶点之间没有边。 完全二分图:集合X和Y每对顶点之间有且仅有一条边的图,记作\(K_{n,m}\),n和m分别为X和Y集合中的顶点个数。 匹配:任意两条边都倍增,DFS序,欧拉序和树的一些知识
倍增 定义 倍增法,顾名思义就是翻倍. 它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度 这个方法在很多算法中均有应用,其中最常用的是 RMQ 问题和求LCA,无修改的路径信息。 路径最小值 注意:路径上的信息需要可以合并,例如求最值 const int N = 201000; const int LOGN =「UOJ751」神隐
题目 点这里看题目。 分析 交互题好难啊.jpg 我们先来分析一下怎么才能找出来一条边。假如编号为 \(k\) 的边被加入到 \(G\) 中的询问集合为 \(Q_k\),则询问必须满足对于任意的存在公共点的 \(e_1,e_2\),\(Q_{e_1},Q_{e_2}\) 之间不存在包含关系。否则我们无法准确地确定边的端点。