自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Expected one of xxx device type 解决方法

Expected one of xxx device type 解决方法

2022-07-24 19:52:28 5095

原创 Torch not compiled with CUDA enabled 解决办法

解决Torch not compiled with CUDA enabled 版本不兼容问题

2022-06-15 20:58:30 19955 1

原创 P3375 【模板】KMP字符串匹配

本题求s2在s1中出现的所有位置,即匹配成功后仍需要进行比对,直到扫描完主串。next数组,ne[i]=j是模式串以i为结尾的所有后缀中与所有前缀匹配的最长序列长度为j,如:abcdabc 以最后一个字符为后缀的所有后缀和该串的前缀匹配的序列有:abc、bc、c,显然abc为长度最长。next数组应用:当模式串第i位失配时,移动模式串到j位再进行比对。在上例中就是最后一个字符失配后,模式串指针移动到模式串最长前缀abc的c位置作用:避免蛮力算法的局部匹配信息的浪费和必然不匹配的比对next数组的构造

2020-05-26 19:18:49 177

原创 P3807 【模板】卢卡斯定理

本题采用卢卡斯定理 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SOBo7psG-1588155431207)(https://qqadapt.qpic.cn/txdocpic/0/d7989b01ae2ee2e61da8e1c0a9c96a9b/0?w=1230&h=234)]公式如图。证明繁杂,直接练习写模板。本题重点:1.模...

2020-04-29 18:17:52 178

原创 [LightOJ - 1067 ]Combinations

本题考虑利用逆元将组合数的求解公式转换为连乘,这是依据逆元能将除法等价转换为乘逆元的问题。​ 设fact[n]=n!,infact[n]=(1/n!)%p,p为质数根据费马定理,可以把m!*(n-m)!转换为infact[m]*infact[n-m]连乘显然需要强制转换为long long来存储精确结果再进行取模。又根据LL的上限,需要在连乘中加入两次取模LL an...

2020-04-25 11:57:49 145

原创 P3386 【模板】二分图最大匹配

可以用匈牙利算法解决这道匹配问题采用邻接表存图,该图视作有向图,方向都是从V1指向V2注意V1的邻接表中h空间开点数上限|V1|=N,而e、ne分别存储边数上限|E|=M。如果空间开错会导致RE、TLE等等错误const int N=510,M=5e4+10;//有向图一次入边int h[N],e[M],ne[M],match[N],idx,st[N];//边信息需要开边集上限空间M v...

2020-04-18 18:29:53 128

原创 [HDU - 1251 ]统计难题

本题考察前缀树,思路是每个节点可能有26个子节点,用son[N] [26]实现节点的后继字符到树节点序号的映射,如sa中s的后继为a,若s的节点序号为1,则a的序号存于son[1] [‘a’-‘a’],“-‘a’“实现字符到数字的压缩难点:1.区分录入组与查询组数据的接受方案录入组需要通过可以接受回车符的gets函数,并用特判字符串的首字符是否为’\0’(gets会将\n转换为\0存储在字符...

2020-04-15 11:18:53 158

原创 [HDU 1280 ]前m大的数(堆)

本题用priority_queue多次申请会爆空间MLE,这是由于每次录入一组数据都需要申请优先级队列的空间导致的。可以采用手写堆,每次录入数据时要初始化堆的容量idx=0;重点:1.堆空间可以放入m的上限N*(N-1)/2,或者直接写为N*Nconst int N=3e3+10,M=N*N;2.初始化堆(floyd建堆)每组数据都需要初始化堆容量先录入元素,再从最后一个内结点到根节...

2020-04-12 12:28:19 121

原创 P3366 【模板】最小生成树

我用prim朴素版(O(n2))来做这道题思想:贪心.prim的过程像最短路的迪杰斯特拉算法:先选择一个顶点入最小生成树的集合,并用它来更新所有点到生成树的最短距离。一波激起千层浪。一共需要选择n次,每次对应第几个结点入树。用st数组标记已经入树。重点:1.图是无向的,用邻接矩阵存储时同一个边需要存两次for(int i=0;i<m;i++) { int u,v,w; c...

2020-04-01 11:58:25 137

原创 [P3371 ]【模板】单源最短路径

这道题是模板题,有很多种做法。我使用Bellman-Ford算法来做练习,积累些经验。难点:1.无穷会因为负权边松弛,即INF+w<INF .例如:设dis为到点1的最短路的长度,dis[2]=INF,dis[3]=INF,存在边(2,3)=-2,除此之外没有以3为汇点的边则根据dis[v]>dis[u]+w,dis[3]=INF-2!=INF,这将导致dis[3]理论上结果为...

2020-03-21 11:45:31 168

原创 [HDU - 1285 ]确定比赛名次

本题难点:1.确定排名.2.图中有重边3.符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。解决方案:1.对于确定排名问题,每个队伍的入度就是失败的次数,出度就是胜利次数。排名越靠前,显然队伍的入度数越少。通过入度数来决定排序的方法就是拓扑排序。2.用邻接矩阵。邻接表需要判重边不便于运算。3.拓扑排序的入度为...

2020-03-17 12:11:24 245

原创 [UVA 11988 ]Broken Keyboard (a.k.a. Beiju Text)

录入操作的本质是在光标后插入新元素,且不改变后面数据与新数据的前驱后继关系。数组 O(n)链表 O(1)因为字符串已经给定,链表实现需要把插入新元素的问题转化为修改元素的后继指针的问题。所以链表直接用后继指针数组和原字符串表示。新字符串的连接:前后元素在给定的情况下,可以利用前驱的指针获得后继的秩,并以此连接新元素与后继指针;而前驱与新元素的关系可以通过修改前驱指针,使其指向新节点的秩即可...

2020-02-28 18:23:19 90

原创 [UVA-1605 ]Building for UN

按照紫书的思路来的。我对于紫书思路的解释是,既然题目要求相邻层的格子算作相邻,那么两层的相同x,y坐标下的格子可以组成笛卡尔乘积,而“一层每行代表同一国,另一层每列代表同一国”可以理解为能组成所有可能的不同国家相邻的情况。这种思路的理解可以类比与邻接矩阵每行各代表一个元素,每列各代表一个元素,从而将所有可能的邻接情况都表示出来。本题难点:1.多组数据输入2.国家数最多50个,但大写字母只有2...

2020-02-26 15:01:50 125

原创 [HDU - 120 ]Stacks of Flapjacks

本题采用贪心策略:将当前范围的最大,即全体的极大,就位。通过不断缩小范围,实现全局有序。和冒泡的贪心策略一样。不过这里不能进行相邻交换。每次求出的极大值,要在该范围下flip,最终就位。采用stringstream方式以空格切割字符串,最终生成的字符串数组包括结束符,因此需要排除。为了能和样例的输出下标的顺序匹配,先把录入的内容翻转。本题的难点在于极大元素不在讨论范围的两端,需要把极大元素...

2020-02-26 10:19:52 140

原创 [hdu-1082 ]Matrix Chain Multiplication

本题是中缀表达式求值的变形。需要用到数栈。因为涉及运算为矩阵乘法,而该运算具有结合律,故可以不用符栈存储运算符。运算的时机只有右括号。本题可以用pair存矩阵情况。并且结合表达式中各矩阵只出现一次的特点,将新矩阵的信息存在乘数对应的矩阵信息上。不过这种做法不适合表达式多次出现同一矩阵的情况,对于这种情况 ,可以采用结构体存储新矩阵。由于采用修改原矩阵信息的方式,会导致下一个表达式结果错误,故采...

2020-02-23 10:20:02 137

原创 [uva514 ]Rails

栈混洗问题对于获取混洗序列各元素,考虑能否直接获取,来源是初始序列和栈顶;不能直接获取,则初始序列首元素入栈缓存,序列指针后移,进行下一步判断。问题:1.取栈顶判断的前提是栈非空,因此操作中要先判栈空才能取栈顶比对2.缓存初始序列首元素的前提是初始序列非空,因此操作中要先用序列指针判空才能取首元素缓存3.用flag判断跳出循环的合法性,初始为合法标志。如果触发非法的情况(取不到需要的混洗元...

2020-02-22 19:33:19 107

原创 [HDU - 1425 ]sort

本题错点在于:1.多组数据 考虑数据容器需要初始化2.每组数据输出的结果用空格间隔,末尾用回车结束3.每组数据上限为1e6,不能使用IO流4.从大到小排序,考虑greater()或者大根堆#include<bits/stdc++.h>using namespace std;int main(){ int n,m,t; freopen("test.txt","r",st...

2020-02-17 17:24:49 123

原创 [UVA - 10870 ]Recurrences

思路参考https://blog.csdn.net/qingshui23/article/details/51681432设矩阵A,使得(f(n−1),f(n−2)…f(n−d))∗A=(f(n),f(n−1)…f(n−d+1))A的意义在于求出f的第n项,将n-1n-d+1后移1列,这分别对应A矩阵的第一列和2d列。溢出的n−d项不再参与运算,故舍去。KaTeX parse error:...

2020-02-11 20:59:51 139

原创 [hdu 4811 ]ball

before [位置]在…的前面the number of different colors of the balls 意思是球的不同颜色数。例如红2黄5的球组合的不同颜色数为2由于红2黄1这种相同色球超过2个以上的样例在放置同色球后再放异色球的位置选取会产生本次放置得分为1(在一端放置)和2(在同色球中间放置)的差异。但是由于在同色球中间放置时,该色球无论已经放置多少个,都只能贡献2分,即...

2020-01-27 21:06:23 151

原创 [hihoCoder 1051]补提交卡

设每组数据有左哨兵a[0]=0,右哨兵a[n+1]=101。对数组中两个相邻元素ai,ai+1的连续提交天数为ai+1-ai-1.ai+1-ai为(ai,ai+1]区间上的整数个数,而-1是为去掉ai+1例如1,2的连续提交天数显然为0,而式子也满足。如何实现使用补题卡的表示呢?对于m张补题卡,am+i+1与ai表示间隔m个元素的两个元素,由于使用了m个补题卡,而每个元素代表漏签的一天,补...

2020-01-20 19:35:38 135

原创 [CodeForces - 1271A ]suits

生词delivery [dɪˈlɪvəri] n.交货scarves [skɑ:vz] n.领带(scarf的复数形式) 音标ka发汉语拼音ga音tie n.领带jacket n. 夹克vest n.马甲题意有两类套装,第一类需要1条tie、一件夹克;第二类需要一条scarf、一件马甲、一件夹克。给出tie、scarf、马甲、夹克各自的数量及两类套装的单价,求如何分配资源使总收益...

2020-01-11 09:48:24 302

原创 STL中二分函数的应用

STL中二分函数的应用设序列a长度为n,从下标0开始录入。求序列中第一个不小于k(>=k)的元素的秩lower_bound(a,a+n,k)-a;求序列中第一个大于k(>k)的元素的秩upper_bound(a,a+n,k)-a;求序列中最后一个小于k(<k)的元素的秩lower_bound(a,a+n,k)-a-1;求序列中最后一个不大于k(<=k)的元素的秩u...

2020-01-09 15:56:49 144

原创 [ WFU 4th 校赛]Bob的难题

题目一个字符串s是由小写英文字母组成。定义一个字符串s′,s′是把s中所有的小写英文字母"a"去掉(其它字母的前后顺序保持不变)。一个新的字符串T,T是由s和s′相连的,换句话说T=s+s′(s必须在s′前面)。给你一个字符串T,你的任务是寻找一个字符串s满足给定的条件。如果可以找到,它将是唯一的。注意本题是拼接,意味着删去所有a后,会出现两个相同的字符串s′的拼接字符串P。本题不是回文题...

2019-12-09 16:48:09 288

原创 [ WFU 4th 校赛]YES or NO

现在给你一个整数n,可以将其转化为二进制数,你现在可以删除这个二进制数中的任意位(例如10101,你可以删除第三位的1,变为1001),问你最后剩下的二进制数能不能被64整除,如果可以被整除输出“yes”,否则输出“no”注意本题的删除是删去该位,而不是将该位的值改为0;而且删去的1的个数为若干个,而不是删一个。思路是拆数n,如果数n有6个0(64的二进制位1和6个0),则可以删为最后六位为0...

2019-12-09 11:09:43 195

原创 [ WFU 4th 校赛]AK爷兼职计

给你一个数字N,紧接着N个数字a[i],让你将这些数字拼接起来,使其在所有的拼接组合中它是最大的一个。例如:N = 3 ,a[0] = 3,a[1] = 2,a[2] = 1,它有6种组合,在所有的组合中,321最大,输出321本题不能单纯考虑录入数组a并从大到小排序,因为有反例:32,4,按值排序的结果为324,但432比这个结果更好。如何实现拼接两个数字按序排列?方案是用字符串拼接。首先用将...

2019-12-09 09:52:29 176

原创 [ WFU 4th 校赛]无上至尊的提案

题目:三个整数分别为a,b,c。属下可以随意运用乘或加这两种运算符号将三个整数连接起来使得运算结果最大。比如:对于1,2,3这三个整数,运算式 (1 + 2)× 3 的运算结果最大,结果为9三个整数的位置是随意放置的,乘或加随意添加,但两个数字之间只能有一个运算符,可以随意放括号来提升运算优先级。由于加法和乘法的结合律、交换律,则a+b+ca*b*c不需要加括号或者随意放三个整数对于加...

2019-12-08 19:35:59 200

原创 [HDU - 1087 ]Jumping!

生词chessboard [ˈtʃesbɔ:d]棋盘chessmen n. 棋子( chessman的名词复数 );In the course of A 在A期间题目阅读everyone must jumps from one chessman to another absolutely bigger也就是说每个人的路径上的相邻棋子的权值顺序是严格从小到大的。One jumping...

2019-11-26 19:18:36 115

原创 [POJ - 3278 ]Max Sum

这道题是一道线性DP问题,可以理解为选择当前元素前提下递归选择最优子问题的迭代版。事实上,各阶段可以做的选择如果有多种(多种选择可以看做是节点有多个出边,选择对应值就是边的权值),那么通过枚举所有选择或者根据特殊比例(二分、fib分、插值分等等)得出最优选择(选择一个作为该节点的出边),这就是阶段优化的意思。至于多阶段优化,就是把各阶段的最优解按照问题规模逼近最终问题的顺序组合,最终得出最终问...

2019-11-24 19:20:15 110

原创 [Codeforces 670C ]Cinema

本题思路是用标记数组存储各种语言对应的人数(“满足人数”实质为该语种的人数),然后通过枚举所有电影来获取音频满足人数最多的电影,如果存在多个满足音频人数最多的电影,则需要求其中字幕满足人数最多的电影。然而问题是语言的范围过大,无法用数组存储,因此无法实现标记数组。方案是用离散化压缩数组。离散化是利用一组数据中有效数据的大小关系来压缩存储空间的方法。本质是将数组中不存储数据的部分剔除,只存放有...

2019-11-23 11:11:39 127

原创 [HDU - 1205 ]J - candy

要求不相邻可以想到插空法,即让数目最多的一类糖果先罗列,再用其他类糖果插空来实现插空,但是如果存在一类插入后仍有空,怎么再插入其他类呢?是插入剩余空还是插入已有类的空使已有类不相邻呢?最妥善的解决方案是将最多的一类看做隔板,由于隔板分区域,则插空的目标是首尾区域可以为空,但其他区域不为空。即各不为空的区域必须填有其他类糖果才能隔开最大类,则需要其他类糖果依次放入非空区域一个糖果,若区域填满则数量...

2019-11-22 16:46:00 132

原创 [POJ - 3169 ]Layout

生词pushy a.纠缠不休的coordinate [kəʊ’ɔ:dɪneɪt] n.坐标constraints [kən’streɪnt] n.限制subsequent a.随后的line-up n.一个排列arbitrarily ['ɑ:bɪtrəlɪ] adv.任性地;题目阅读一群牛排成一队,由于有些牛彼此喜欢,则会要求距离不超过一定的距离;反之,彼此厌恶的牛,则会要求...

2019-11-16 20:11:18 163

原创 [CodeForces - 250A ]B - Paper Work

题目阅读对每天的收益亏损记录划分文件夹。如果一个文件夹存在3天及以上的亏损记录,则不满足要求。要求文件夹存连续的记录。求使文件夹满足要求且分配最少的分配数量及分配记录数。我以为本题是区间DP,结果网上题解是贪心。贪心确实比DP想起来简单。贪心策略是如果枚举到的该天记录入当前文件夹后亏损记录少于3天,则入文件夹。实现过程简单,需要有记录当前文件夹中亏损记录的变量以及记录当前文件夹的天数的记录...

2019-11-05 20:49:05 153

原创 [CodeForces - 1236B]Alice and the List of Presents

题目阅读有n种礼物,每种礼物无限件,m个有标号的( For example, putting the first kind of present into the first box but not into the second box, is different from putting the first kind of present into the second box but no...

2019-11-01 18:35:37 196

原创 [POJ - 3984 ]迷宫问题

本题难点同POJ - 1426、POJ - 3414(更相似),都是BFS的回溯。这里设源点的pre(父节点在队列的下标)为-1。找到目标点后需要入栈,入栈结束条件为pre!=-1if(t.x==4&&t.y==4){ s.push(t);//终点 while(t.pre!=-1){//没有到达源点 t=que[t.pre];//生成父节点 s.p...

2019-10-14 16:45:49 103

原创 [UVA - 11624 ]H - Fire!

生词portion n. 部分diagonal [daɪˈægənl] adj. 对角线的题目阅读一个迷宫有一个人和若干(portions of the maze have caught on fire,也就是至少为0个,没注意到这点会WA)火,迷宫为二维数组,人和火的移动方向为上下左右,每次移动一个方格,不能走到墙的方格。人走出迷宫的标志为越界。迷宫的行列范围可以设为[0,r),[0,...

2019-10-13 16:05:17 124

原创 [FZU - 2150 ]G - Fire Game

生词grid n. 网格题目阅读两个兄弟选择两块方格(可以是同一方格)的草堆点火,火按照上下左右方向以层次的形式蔓延,并且火每走一步需要时间为1。问如何选择能让火把图中所有草堆烧完。草堆形式为#,而平地为.。无疑这和迷宫题几乎思路一样,不过不同的是要选择两个可以相同的入口,这似乎是需要几何知识来找到这个最短路入口,事实上题解给出的是暴力枚举所有草堆的坐标作为BFS的入口,每次BFS结束后...

2019-10-08 15:38:27 100

原创 [POJ - 3414]Pots

题目阅读生词pot n.容器volume n.体积liters ['lɪtərz] n.升( liter的名词复数 );respectively adv.分别地题意有两个容器,容量分别是A和B,可以进行三种操作:1.装满2.倒空3.从i倒向j,结果是要么j满(此时i可能还有水),要么i空(此时i的所有水已经倒入j)问为了得到容量为C的水,最少需要多少步操作?前二者的实现非常...

2019-09-30 09:23:38 165

原创 [POJ - 3126 ]E - Prime Path

题目阅读生词cabinet [ˈkæbɪnət] n.内阁every now and then 偶尔eavesdrop [ˈi:vzdrɒp] vi. 偷听intervened [ˌɪntəˈvi:nd] v. 介入expenditure [ɪkˈspendɪtʃə®] n. 花费Prime minister n.首相prime n.素数invent [ɪnˈvent] vt. ...

2019-09-23 15:29:11 136

原创 [POJ - 1426 ]Find The Multiple

题目阅读Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and...

2019-09-18 16:07:31 352

原创 [POJ - 3278 ]C - Catch That Cow

题目阅读Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤...

2019-09-14 17:39:39 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除