- 博客(43)
- 收藏
- 关注
原创 踩坑:ffmpeg_extract_subclip() 切分视频时阻塞卡死
ffmpeg_extract_subclip函数在进行剪辑时不会重新编码,因此第一帧必须是关键帧。根据MoviePy的源代码,时间会被四舍五入到2位小数。如果需要更精确的剪辑,你可能需要直接使用FFmpeg。后来发现此代码时常会阻塞,不报error不退出,就一直在那卡着。之前跑代码时经常卡死,不知道问题出在哪。
2024-06-05 14:38:12
512
原创 报错:ModuleNotFoundError: No module named ‘torchvision.transforms.functional_tensor‘ 解决办法
高版本pytorch的torchvision.transforms._functional_tensor名字改了,在前面加了一个下划线,但是torchvision.transforms.augmentation里面的import没把名字改过来,所以会找不到。pytorch版本在1.13及以下没问题,但是安装2.0以上会出现此问题。手动改成以下内容即可。
2024-03-11 15:29:54
12796
8
原创 C-Klee in Solitary Confinement 思维
链接:https://codeforces.com/gym/103470/problem/C题意:给一个数字序列,可以给一个子区间+k,要求输出众数最多的数量。题解:考虑一个区间+k带来的影响,这个区间内所有原本是a的数变成了a+k,所有是a-k的数变成了a。于是如果想选择a为众数,选取的区间内所有a每个的贡献是-1,而区间内的a-k每个贡献是+1。很容易想到,对于给定的a,只要找最大贡献的区间即可。但是如果枚举a,肯定就超时了,这时需要思考优化当我们枚举到第i个位置,这个位置的值是ai,可以
2022-03-27 13:59:24
2113
原创 B-Tree Summing 记录一种用来处理复杂输入的好方法
链接:https://vjudge.net/contest/477437#problem/B题意:给一个树(描述方法非常烦人),要求查看是否有某个 从根到叶子的路径节点数值之和 等于给定的值。题解:用cin来交替输入char和int,可以比较好地将字符与数字分离(过程中记得cin.clear() )#include<iostream>using namespace std;int ans,sum;bool flag;bool ok;/*题目中可以抽象为( 根节点 (左子树)
2022-01-19 21:56:16
355
原创 E-Minimax [ Codeforces Round #733 (Div. 1 + Div. 2) ] 构造
链接:https://codeforces.com/contest/1530/problem/E题意:给出一个字符串,要求对字符重新排序,使得到的新串以从1-1、1-2、1-3、…、1-n的子串中,前后缀相同的长度最大值最小输出这个串,且需要字典序最小.题解:可以分多种情况考虑1.每个字母只有一种:从小到大输出2.只有一种字母:直接输出3.第一位放两个最小字母:此种情况的条件是,最小字母的数量少于一半,使得最小字母可以在后面间位排列,也就是说除了首位之外不能出现最小字母4.第一位放一个
2021-08-24 14:13:28
144
原创 D [ 2021SDU XCPC排位赛(8) ]
链接:https://codeforces.com/gym/341451/problem/D题意:给一个棱长为1的正四面体,两只蚂蚁按照平面直线在正四面体以初始角度ang走了l距离,问是不是终点在同一个面上。题解:比较容易想到的是画出四面体无限延伸的平面展开图,但是如果是很多小三角形,写判断会非常难受。这时候就需要仿射,具体做法是对所有点都偏移一个值,这样不会改变点在哪个三角形内的关系。先算出x,y坐标然后再仿射,把两个三角形变成一个正方形,这样写判断就轻松多了。需要注意的点:因为角度是对于特定
2021-08-23 16:45:11
125
原创 C-Mikasa [ Codeforces Round #735 (Div. 2) ] 位运算
链接:https://codeforces.com/contest/1554/problem/C题意:给出n和m,要求找到最小的大于等于0的不在n ^ 0 ~ n ^ m覆盖范围内的数。题解:对于 a ^ b == c 有 a ^ c == b。寻找一个最小k, 对于 n ^ x == k, x ∉(1, m), 又有 n ^ 0 == n.。 可得 x > m该问题等效于 对于 n ^ k == x, x > m, 即 n ^ k > m, 寻找最小k。可令 p == m +
2021-08-21 17:06:00
106
原创 F-Nearest Beautiful Number [ Codeforces Round #739 (Div. 3) ] 仿数位DP 状压
链接:https://codeforces.com/contest/1560/problem/F1题意:要求用0-9中选k个数作为目标数的某一位(可以重复用)输出大于等于给出数的最小值题解:不是数位DP,但是很像从前往后查找,对于某位置升序查找判断一下取的数是否满足条件(状压DP思想)这样确保找到的数一定是最小的#include<bits/stdc++.h>using namespace std;string s;int ans;int k;int check(int
2021-08-19 19:52:46
94
原创 D-Integers Have Friends [ Codeforces Round #736 (Div. 2) ] 线段树 滑动窗口
链接:https://codeforces.com/contest/1549/problem/D有大坑,当n等于1时无法构造b数组,线段树l=1,r=0,会出问题必须特判掉1#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+10;ll t[maxn*4];ll a[maxn];ll b[maxn];void pushup(int rt){ t[rt]=_
2021-08-17 20:24:34
88
原创 E-Boring Segments [ Educational Codeforces Round 112 (Rated for Div. 2) ] 尺取 线段树
链接:https://codeforces.com/contest/1555/problem/E题意:在数轴上给3e5条从l到r权为w的线,要求选择其中一些线,将1 ~ m完全覆盖。要求输出选择方案中 max与min权值 之差 最小的结果。题解:用线段树维护覆盖的区间设置尺取选中范围l与r按w从小到大排序,依次将区间加入线段树,也就是r不断右移如果出现符合条件的情况,就记录当前的大小差值并且将l持续右移,同时将区间从线段树中移除,直至不符合为止取大小差值的min即可过程有点像扫描线(个
2021-08-17 16:04:01
77
原创 D-Say No to Palindromes [ Educational Codeforces Round 112 (Rated for Div. 2) ] 思维 前缀和
链接:https://codeforces.com/contest/1555/problem/D题意:给一个只有abc的字符串,一次操作可以用abc中的一个替换某个位置,对2e5个区间进行询问,要求输出使这个区间没有回文子串的替换次数。题解:子串中没有回文,则必须首先保证任意相连的3个字母是不同的,所以答案是abc全排列的一个循环。枚举所有循环,然后输入区间时进行比较,取最小的用前缀和优化复杂度#include<bits/stdc++.h>using namespace std;
2021-08-17 11:38:09
118
原创 P6239-奇怪的道路 状压DP
链接:https://www.luogu.com.cn/problem/P6239题意:n 座城市,编号为 1-n。m 条道路连接在这些城市之间,一对城市之间可能存在多条道路。对于任何一条道路,设它连接的两个城市分别为 u和 v,则必定满足 1≤∣u−v∣≤k。任何一个城市都与恰好偶数条道路相连( 0 也被认为是偶数)。两种可能的连接方法不同当且仅当存在一对城市,它们间的道路数在两种方法中不同。有可能存在两个城市无法互相到达。输出道路连接方法数模1e9+7 后的结果。题解:dp时到i点,只
2021-08-16 16:56:48
94
原创 E-Mocha and Stars [ Codeforces Round #738 (Div. 2) ] DP 容斥
链接:https://codeforces.com/contest/1559/problem/E#include<bits/stdc++.h>using namespace std ;typedef long long ll;const int maxn=1e5+10;const ll mod=998244353;int l[maxn];int r[maxn];ll dp[60][maxn];ll cnt[maxn];ll sum[maxn];int main(){
2021-08-16 11:06:21
320
1
原创 P3177-树上染色 树形DP
链接:https://www.luogu.com.cn/problem/P3177题意:给您一棵有 n 个点的树,树上的边有边权,让你在其中选择出k个黑点,其余的为白点,使得黑点与黑点的距离总和与白点和白点的距离总和的和最大, 让您求出这个值最大是多少。思路:我们在考虑多种状态后选出一种容易转移且可以保证正确性的状态,我选择的是 f[x][ j ] 表示以 x 的子树中选择 j 个黑点对于答案的最大贡献,那么,这个问题就转换成了一个树上的背包问题,即对于节点 x 每一个子节点 y 的子树 ,都可以选
2021-08-10 20:23:35
222
原创 F-xay loves trees [2021牛客多校7] DFS序 树上滑窗
链接:https://ac.nowcoder.com/acm/contest/11258/F题意:给两棵树,要求找一个最大点集,满足以下条件。1.在第一棵树上连续,且任意两点必有一点是另一个的祖先。2.在第二课树上任意两点都不能是对方的祖先。输出最大点集元素数题解:(不是标程,只是觉得这种办法很妙,写个题解记录一下)用树上滑块做,初始ans=1,令滑块长度为2,如果找到2的答案,更新ans并使滑块长度变为3整个过程中滑块长度不会减少,所以复杂度每个点只会进出队列一次,复杂度on先在第二个树
2021-08-08 12:52:26
139
转载 P4052-文本生成器 AC自动机 DP
链接:https://www.luogu.com.cn/problem/P4052题解:对于这个题,我们可以先将AC自动机建立出来,然后搞一个简单的容斥用所有的情况减去不可读的情况。那么那些是不可读的情况呢?当然就是跑不到单词结尾节点的情况喽……定义f[i][j]表示当前在j点且串长为i时不经过单词结尾的路径条数然后从父亲往儿子转移即可实验室某refun大佬说AC自动机的DP都非常套路大部分f[i][j]表示当前在节点j,且串长为i时的情况,有时再加一维表示这个状态里面包含了哪些东西而且
2021-08-05 17:02:59
105
原创 H-Hopping Rabbit [ 2021牛客多校6 ] 扫描线
链接:https://ac.nowcoder.com/acm/contest/11257/H题意:有1e5个矩形,坐标范围±1e9,现在给出一个点列,横纵坐标间距为d(1e5),要求找到一个固定点,使得所有点都不在矩形内部。题解:将所有矩形%d之后,让矩形落到(0,0)到(d,d)的区块,但是有可能有的矩形与(0,0)到(d,d)的区块相交,那就按照相交的线把矩形拆分成2个或者4个。然后使用扫描线,线段树维护区间最小值,如果扫到一条线上区间最小值为0,则说明这里有空出来的位置,扫一遍这条线,获取到
2021-08-03 16:29:53
198
原创 D-Double Strings
链接:https://ac.nowcoder.com/acm/contest/11256/D题解:好的方案的构成是“一段相同的前缀+一个不同字符(a比b小)+长度相同的任意后缀”。枚举不同的字符在两个序列中的位置。用dp[i][j]表示只考虑 A 中的前 i 个字符和 B 中的前 j 个字符时的相同的子序列的个数,转移可以 O(1),这样可以统计出相同的前缀个数,这部分是 O(|s|*|t|) 的。长度相同的任意后缀也可以用类似的 dp 计算,或者设 A 中此时剩余长度为 x, B 中剩余长度为 y
2021-08-01 23:19:17
279
原创 E-Permutation Shift
链接:https://codeforces.com/contest/1553/problem/E题意:对一个从1到n的序列第一步:先进行任意次滑动,比如说1234向右滑动一次变成4123第二步:进行任意次任选两个元素两两交换输入结果序列,和进行的交换数(交换数小于n/3)要求输出序列可能由原序列滑动的次数题解:因为交换数小于n/3,所以滑动了i个位置的元素必定大于n/3个可知,最多的可能滑动次数只有3个所以可以暴力判断如果符合了滑动i次的数字大于n/3就判断交换数是否符合而通过公式
2021-07-29 20:49:40
229
原创 P4042-骑士游戏
链接:https://www.luogu.com.cn/problem/P4042题解:(转自洛谷 寒鸽儿 仅作为笔记用)这道题是一道spfa变形题,具体考察对spfa的深入理解spfa本身是对Bellman-ford算法的优化。在Bellman-Ford算法中,n轮扫描每一条边看一看各个点有没有希望被松弛。spfa之所以能用来处理Bellman-ford并进行优化,其原因是在Bellman-ford中,每一轮扫描的边有很多都没有可能更新其它点。spfa指出,当一条边有希望更新它的一个端点的最短
2021-07-29 20:11:41
82
原创 P1196 [NOI2002] 银河英雄传说
链接:https://www.luogu.com.cn/problem/P1196调了挺久的,一些细节没注意到。细节在注释里都标注了#include<bits/stdc++.h>using namespace std;const int maxn=50000;int f[maxn];int dis[maxn];//战舰在行中的位置int num[maxn];//行中有几个战舰void init(){ for(int i=0;i<maxn;i++){
2021-07-22 22:31:57
92
原创 H-Hash Function
链接:https://ac.nowcoder.com/acm/contest/11166/H题目大意:给定 n 个互不相同的数,找一个最小的模域,使得它们在这个模域下互不相同。n 500000。考察内容:简单数论,卷积解法:考虑两个数 a 与 b, a 与 b 模 m 余数相同,当且仅当 |a-b| 能被 m 整除。问题转化为找到最小的 m,其不是任意一个 |a_i - a_j| 的约数。由于1 <= |a_i - a_j| <= 500000, 如果我们知道每一种差值是否存在,只
2021-07-20 17:59:41
88
原创 I-Penguins
链接:https://ac.nowcoder.com/acm/contest/11253/I做法:最多可能状态只有20的4次方,即16w,所以直接bfs就行需要注意的点是:当一边碰到障碍或边界,是不会移动的,所以可能只有一侧移动#include<bits/stdc++.h>using namespace std;bool vis[22][22][22][22];bool a[25][25];bool b[25][25];char c[25][25];char d[25][25]
2021-07-19 20:18:44
88
原创 D-Secret Santa
链接:https://codeforces.com/contest/1530/problem/D题意:n个人,每个人希望给第ki个人送礼物,但每个人都必须接受一份礼物,不能给自己送礼物,问礼物怎么分配。思路:比较容易想到的是贪心,扫一遍,满足第一个想给k送礼物的人,然后后面遇到重复的就跳过,最后把剩下的分配给重复的那些人。但是这样做有可能出现自己给自己送礼物的情况,所以关键的步骤就是去重。去重方法:扫一遍,如果出现了自己给自己送礼物的情况,则满足那个送给自己礼物的人的愿望,同时令原本匹配的人给 送
2021-07-18 11:59:46
283
原创 C-Hasan and his lazy students
https://codeforces.com/gym/326786/problem/C题意:给出一个序列,求最长上升子序列长度及个数。解法:dp[ i ] 其中i为数的下标,其中存最长子序列的长度cnt[ i ][ j ] 其中i为数的下标,j为序列长度,其中存到i的长度为j的上升序列个数那么依次枚举每位数,记当前枚举的数为 i ,它前面的某一个数为 j ,则如果第 i 位数大于第 j 位数,则到第 j 位数构成的上升子序列可以接到第 i 位数前面。有状态转移方程:dp[ i ]=max(d
2021-05-03 17:51:48
76
原创 G-The Galactic Olympics
https://codeforces.com/gym/326694/problem/G假设要把n+1个元素分成m个集合则分析如下:1.如果n个元素构成了m-1个集合,那么第n+1个元素单独构成一个集合。方案数m×S(n,m-1)。2.如果n个元素已经构成了m个集合,将第n+1个元素插入到任意一个集合。方案数 m×S(n,m) 。注意有特殊情况:1.如果只有一个集合,那方案数只有一种。2.如果元素个数n等于集合数,那么它是一个n的全排列,如果要再加一个单个元素的新集合,应该乘n+1。#inc
2021-05-02 21:23:29
116
原创 B-Street
https://codeforces.com/gym/326694/problem/B题意:一个大矩形里有很多小矩形,走小矩形外计算距离,走小矩形内距离不计。现在给出数据,要求计算从大矩形的下底边走到上底边需要的最短距离。做法:先将小矩形视为点,计算不同小矩形之间的最短距离,及小矩形到上下底边的距离。再在构建的图上跑最短路算法。特别需要注意的点(我在这里卡了一个多小时qwq):小矩形在异侧时,宽度和可能会超过大矩形的宽度,这时不再需要走对角,而是直接走高度距离差的直线#include<
2021-05-02 17:30:19
121
原创 B-Battle Royale
给一个大圆,只能在大圆范围内行走。再在大圆内部给一个小圆,不能从小圆上行走。指定了出发点和目的地s t,问从s到t的最短路径长度。很显然如果线段与圆不相交,直接走过去就行。线段如果与圆相交,则先沿着点到圆的切线走到圆上,再在圆上走过一段弧,最后相切走到目的地。关键点:判断线段是否与圆相交通过画图可以发现,如果相交,则能找到两个相切三角形。两个相切三角形,圆心那个顶点的角相加应小于s与t到圆心连线的夹角。所以只需要将大角与两个三角形的角比较即可。不要忘了顺带存一下二者的差(也就是中间圆弧对
2021-05-02 00:21:59
109
原创 E-Optimal Slots
https://codeforces.com/gym/324833/problem/E#include<bits/stdc++.h>using namespace std;int t,n;int c[100005];int dp[100005];int path[10005][105];void solve(){ for(int i=n;i>=1;i--){ //这种方法输出顺序与dp顺序必定相反 //必须是倒着扫 //
2021-04-26 16:56:55
110
原创 Codeforce编译环境影响读入速度造成TLE的一些记录
昨天在codeforce训练的时候有一道签到题一直TLE。这道题读入数据范围非常大,提交的是c++17(64)。不管是用cin还是scanf,或者关同步,都过不了。今天突发奇想换了c++11交了一发。然后就过了。。。。看来codeforce的c++17的读入确实要慢一些。之前也有个签到题一直不过,可能也是这个原因。以后应该注意一下。...
2021-04-25 16:46:21
244
原创 F-Military Class
https://codeforces.com/gym/324833/problem/F发现该题相邻的范围e<=4,所以可以状压dp方法是遍历第一排的每个士兵,分别与第二列士兵进行匹配dp[i][j]中i代表第一队的第几个士兵j代表第二队在e范围内(也就是相邻)的士兵是否已经匹配则可以通过j不断向右滚动来传递之前已经匹配好的情况对于每一次dp:先查看选取的位置是否在边界内然后查看是否可以匹配该位置最后查看该位置是否已经被占用了#include<bits/stdc++.h>
2021-04-19 16:52:59
150
原创 G-Snake Rana
https://codeforces.com/gym/323862/problem/G先算出来总数,再减去含有炸弹的可以用容斥定理含有炸弹的=仅含有一个的-含有两个的+含有三个的-……要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。#include<bits/stdc++.h>using namespace std;cons
2021-04-19 14:51:58
123
原创 A-Sherlock Bones
https://codeforces.com/gym/323862/problem/A1111111=>11101111添加的0会对组数造成增多的影响,如果中心1在0左边,则会使右边的连串0对左侧1造成影响(增多0的个数种选择数)反之亦然开数组记录每个1前面0的个数L,与每个1后面0的个数R,对于第i个位置:种类数L(i)xR(i)+∑(l(i-a)+1)x(r(i-a)+1)会超时优化:把L与R全部+1发现奇与奇相乘,偶与偶相同。对于一个七个1的序列:L1x(R3+R5+R7)+
2021-04-18 16:41:11
116
原创 D-Magical Bamboos
https://codeforces.com/gym/323862/problem/D选择一个减小1,其他的都增加1,可以看做其他是不变的,而这个数减小了2,所以必须奇偶性相同在这里插入代码片
2021-04-17 19:47:23
423
3
原创 E-Competitive Seagulls
https://codeforces.com/gym/323862/problem/E当大于等于5的时候,先手只需要在中间选2或者3,将两边分成两个相等的块,然后根据对手的操作,在对称的块上镜像操作,则必定赢#include<bits/stdc++.h>using namespace std; int main(){ int t,n; cin>>t; while(t--){ cin>>n; if(n>
2021-04-17 19:41:58
97
原创 A-Alluka‘s Curse
A-Alluka’s Curse SDU省赛团队排位赛(2)有多少种不同的方法可以填充一个3×n的网格,只使用1×2块,将其模1e9+7输出。输入输入的第一行包含一个整数,n(1≤n≤1e7)-网格的维数。输出打印可以填充网格的不同方式。拆分成两种块A块是长度2n的矩形块,B块是最长边长度为2n的一个突出一块的图形。则有递推关系。a2n+2可由b2n和a2n递推而来,a2n至a2n+2只需要补一个23的块,所以乘3而b2n推到a2n+2只有一种补法。所以有递推关系式:a(2n+2)
2021-04-12 14:58:17
67
原创 F-Frieza Frenzy
F-Frieza Frenzy SDU省赛团队排位赛(2)https://codeforces.com/gym/324030/problem/F弗里扎来到地球,正在寻找小悟空。他没有那么耐心,所以他决定一条一条地摧毁道路,直到小悟空出现。由于Frieza破坏了道路,一些地区的交通中断,一些地方的人们无法到达其他地方。如果从这个集合中的任何一个地方,可以到达它上面的每一个地方,而不可能到达它之外的任何地方,那么一组地方就被称为是连接的。中心城市有n个地方和m条双向道路连接两个不同的地方。最初,城
2021-04-11 22:02:20
93
原创 G-取快递 SDU2020个人排位赛#3
G-取快递 SDU2020个人排位赛#3https://codeforces.com/gym/323026/problem/G学校的快递代收处可能并不是方便,shy打算找一找有哪些地点适合作为快递代收处学校可以看成一个无向、有边权的树,下图是一个例子。有的节点有宿舍楼,有的节点没有。快递代收处可以被安排在任何节点上,也就是说,任何节点都是一个候选位置学校里有k个宿舍楼,而快递代收处应该尽可能离它们更近。在上图中,有三个宿舍楼,被标注为A,B,C。shy认为一个好的候选的位置应该满足以下条件:令 d
2021-04-05 13:52:38
106
原创 D-生活在树上 SDU2020个人排位赛#3
D-生活在树上 SDU2020个人排位赛#3D. 生活在树上https://codeforces.com/gym/323026/problem/D很遗憾,在宿舍使用电饼铛是违规的,zdx并没能成功烙好饼。事实上,他一打开开关,整层楼的电闸都跳了,尽管他已经把线接在了空调专用插口上。zdx需要恢复宿舍的供电,宿舍的结构可以看成一棵有根树,有n个节点,编号从0到n−1,其中0号点是根节点。每个节点有一个数值,zdx每次行动会指定一个点,然后把这个点到根节点的路径上所有节点的数值都+1或者−1。直到所有节点
2021-04-04 19:06:48
115
原创 E-捡贝壳 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)
E-捡贝壳小明来到一片海滩上,他很喜欢捡贝壳,但他只喜欢质量为x的倍数的贝壳。贝壳被排列成一条直线,下标从1到n编号,小明打算从编号为区间\left [l,r \right ][l,r]的贝壳中,捡起所有他喜欢的贝壳。你能帮他计算出他能捡多少贝壳吗。给出一个大小为n(n≤10e5)的数组,下标从1到n编号,a1,a2,…an。(ai≤10e5)表示贝壳的质量。给出q(q≤5e4)次询问,每次询问包含3个整数l,r,x,对于每次询问,输出一行整数,表示这次询问中能捡到的贝壳数。把输入的数拆解成因数的
2021-03-29 15:49:26
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人