自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GAN(Generative Adversarial Network)的复现

链接:https://pan.baidu.com/s/1rHwdw22bl-l5ID3OJMsldw。使用了一个新的数据集anime,数据集的链接在下方,数据集一共有5w多张动漫头像,都是。首先为数据集建造dataset类,代码如下。训练的代码如下,详细修改见代码注释。,在一个新的数据集完成了复现。

2023-04-10 23:14:47 513 6

原创 区间第k小(主席树)

题目链接:2104 – K-th Number (poj.org)求解区间第k小的数,这是一道非常版的主席树的题。题意没啥好分析的,主要是谈一下主席树,主席树又叫可持久化线段树,是一种基于差分的数据结构,它的可持久化在于它能够维护它的历史版本,通过两个历史版本的对比差距而来获取这部分的信息。主席树的大小一般开32倍或者20倍。#include<bits/stdc++.h>const int N=1e5+5;using namespace std;int n,m,a[N],b[N],t

2021-11-21 23:16:31 360

原创 Zjnu Stadium(带权并查集)

题目链接:Problem - 3047 (hdu.edu.cn) Zjnu Stadium题目大意:给出关于n个人座位的m个要求,每个要求由三个数A、B、C。表示B在A后面C个单位距离。需要你从这m个要求中,找出其中不能满足的个数。分析:这道题考查的是带权并查集,如果没看出来我建议先看一下后面的一个板子题(这种需要判断的题一看就想到了并查集)。如果A与B不在一个集合中,合并两个集合即可,若在一个集合,判断A与B的距离是不是恰好为C即可,如果不是,累计答案。这道题的核心是实现带权并查集的合并操作。我们设A

2021-11-06 23:15:34 177

原创 Di-visible Confusion(数学+思维)

题目链接:Problem - C - Codeforces Di-visible Confusion给你一个长度为nnn​​的序列,你可以从其中选一个下标iii​,如果aimod(i+1)a_i mod (i+1)ai​mod(i+1)!=000​​​,那么我们可以去掉它,之后的操作都是在之前的操作的结果上进行操作的。你需要判断能不能通过这个操作把整个序列删除。不难发现,对于第下标1,只能对2进行取模判断,对于下标2,可以对2和3进行取模判断,所以对于下标nnn​​,可以对2,3,…,n+1进行取模判断。

2021-11-02 11:09:28 496

原创 Vupsen, Pupsen and 0(构造+思维)

题目链接:Problem - D - Codeforces Vupsen, Pupsen and 0给你一个长度为1e51e51e5​的序列a,a中所有的元素均不等于0,范围是[−1e4,1e4][-1e4,1e4][−1e4,1e4]​,需要构造一个长度相等的B序列(不含0),满足∑ai∗bi=0\sum a_i*b_i =0∑ai​∗bi​=0​,而且这道题要求∑∣bi∣<=1e9\sum |b_i|<=1e9∑∣bi​∣<=1e9​。这个约束对于a数组是成立的,∑∣ai∣<=

2021-10-26 10:44:45 171

原创 Integers Have Friends(线段树+尺取)

题目链接:Problem - 1548B - Codeforces Integers Have Friends题意求一个序列最长子序列,这个最长子序列所有的数对一个确定的数取模后的值相等。这需要用到一个数论的知识,转化为求他们的绝对值差分数组的最长子序列的gcd大于1。转化到这一步就有两个思路,一种是采用线段树来维护区间gcd,一种则是使用st表来维护。习惯哪个用哪个,个人比较喜欢线段树,之后使用尺取来更新最长的子序列。#include<bits/stdc++.h>#define int

2021-10-25 22:41:49 118

原创 Card Game Again(尺取+二分)

题目链接:Problem - 818E - Codeforces Card Game Again你需要从给定的nnn​​个数中,去掉前xxx​(x>=0x>=0x>=0​​),后yyy​(y>=0y>=0y>=0​),且x+y<nx+y<nx+y<n​,剩下的数的乘积如果是kkk​​的整数倍,那么我们称它为生动的序列,需要求有多少个生动的序列。由于数据量比较大,我们不能直接计算乘积而转化为对kkk​进行因式分解。整个序列对其因子进行分解,记下数量。知道

2021-10-24 22:30:50 114

原创 Driving Test(栈+思维)

题目链接:Problem - 845D - Codeforces Driving Test题目大意就是开车,路上有4种路牌,分别是允许超车,不允许超车,限速,与不限速。共有六种操作,就是碰到这4种路牌及超车和变速。求最少忽略多少个路牌,给出的操作序列不违反交规。首先我们可以明确超车与超速这两个事件是无关的分开计算。先来说超车,这个比较简单,每次非法超车之前,有多少个连续的不许超车累加就行。再就是超速,如果遇到限速标志,当前超速,直接计数忽略它,如果未超速,需要记录它,当改变车速时,我们需要从后往前找到第一

2021-10-23 19:50:51 396

原创 Slime(思维)

题目链接:Problem - 1038D - Codeforces Slime题目大致意思是给你一堆数,其中的任意两个数是可以互相合并的,合并得到的结果是这两个数的差值的绝对值。任意两个数合并一起可以得到一个正数或者一个负数,也就是得到他们之差的绝对值,之后与任何一个数合并都可以得到他们的绝对值之后的绝对值(就是说一个正数和一个负数的差值的绝对值等于他们的绝对值之和),然后我们计算两个相邻数的合并的最小损失值就行(因为只需一次合并即可得到一个绝对值数,就是想他是正数或者负数都行),答案即为所有数的绝对值之

2021-10-21 22:40:24 102

转载 Cards Sorting(思维+set)

题目链接:Problem - 830B - Codeforces Cards Sorting题意是你需要从小到大的从一堆卡牌中拿出最小的牌,如果这张牌不是最小的,将它置于牌堆的最后,是就拿出。求需要进行多少次操作最终把所有的牌拿走。首先可以明确拿走牌的顺序是确定的。拿牌的最优策略肯定是每一轮(扫一遍当前所有牌)从牌堆中拿走当前最小的牌,以及在它后面的下一张该被取走的牌,循环执行。比如第一个样例:46 3 1 2第一轮需要取走 1和2,记录总数46 3第二轮需要取走3,记录总数23第三轮取走

2021-10-21 20:32:52 133

原创 TediousLee(DP+思维)

题目链接:Problem - 1369D - Codeforces TediousLee题意不难理解,这棵树的每一阶都是由之前一阶中所有叶子节点下加一个叶子,所有有一个子树的节点加两个叶子所形成,我们需要求nnn​​​阶树中有多少个”爪型“,然后结果乘以4就行,数据很大需要进行取模。不难想到dp,dp[i][3]dp[i][3]dp[i][3]​​​,其中dp[i][0]dp[i][0]dp[i][0]​​​表示没有子树的点 ,其中dp[i][1]dp[i][1]dp[i][1]​​​表示只有一个子树的点

2021-10-18 23:55:51 118

原创 Shortest Cycle(floyd求最小环路+抽屉原理)

题目链接Problem - 1205B - Codeforces Shortest Cycle给定nnn个数,数据范围为[0,1e18][0,1e18][0,1e18]​,如果任意两个数的按位与的结果不为0,那么这两个数之间连有一条边,求其中存在的最小的环,我们很容易看出至少有三个有一个相同的位,那么这三个数就可以构成一个大小为3的环,根据抽屉原理,最多有64位,如果有超过128个数的话我们可以判断直接输出3,但是要不能包含0,因为0与任何数按位与的结果都是0,对于128个点求最小的环可以使用floyd找

2021-10-16 21:57:23 134

原创 Rescue Nibel!(组合数学)

题目链接:Problem - 1420D - Codeforces Rescue Nibel!有nnn盏灯,每盏灯亮在一个连续的时间段亮着,求恰好有kkk盏灯亮着的组合数,需要取模。这道题咋一看有点像扫描线,最终的做法也是类似扫描线的,按照下标排序从小到大排序,下标相等按权值从大到小排。然后扫一遍进行计数。计数的时候我们需要用到组合数的公式,CnmC_n^mCnm​=Cn−1m−1C_{n-1}^{m-1}Cn−1m−1​+Cn−1mC_{n-1}^{m}Cn−1m​,每次增加一盏新的灯就需要增加Cres

2021-10-15 20:06:19 141

原创 The Number of Imposters(并查集+dfs)

题目链接:Problem - D - Codeforces The Number of Impostersn个人,一共有m个描述,每个表述为i认为j是好人或者是坏人,求可能的最大的坏人数。考虑并查集,并查集里面有一个典中典的题,叫食物链,类似的,利用并查集来判断是否满足条件。对于每一个人i,并查集f[i]和f[i+n]分别表示与 i是同类和异类的集合。建图参考如下代码。如果i认为j是好人那么i与j的类型是相同的,反正是不同的。如果满足条件所有的n个人会被分成若干个连通块,单独的考虑每一个连通块,按照好人

2021-10-15 17:08:43 298

原创 Explorer Space

题目链接:Problem - 1517D - Codeforces Explorer Space在一个无向图中,求每一个点走k​步回到起点的最短路径,允许走重复的路,不难想,k如果是奇数的,肯定是无法回到原点的,只要每个点计算走k/2​的步数的最短路路径即可。数据量比较小,考虑dp,dp[i][j][k]​表示从(i,j)这个点出走k​​步所到达的最小权值。这道题还有一点需要说明,就是图的存储方式比较特殊。#include<bits/stdc++.h>using namespace

2021-10-14 22:39:16 131

原创 Sleeping Schedule

题目链接:Problem - 1324E - Codeforces Sleeping Schedule题目给定四个参数,n,h,l,r​​​,其中n​​​表示睡觉的次数,数组a[n]​​大小为n​​,a[i]​​表示下一次睡觉要经过a[i]​​或者a[i]-1​​个小时,h​​表示一天 有多少个小时,[l,r]​​​​这个区间表示在这个区间睡觉代表睡得好,每次睡觉睡完整的一天,求最大的睡的好的天数。数据量不大,考虑dp,dp[i][j]​​表示第i天j时刻睡觉的最大睡得好的天数。#include&

2021-10-14 22:38:17 76

原创 Modulo Sum

题目链接:Problem - 577B - Codeforces Modulo Sum求n个数中是否存在任意个数的和恰好能整除m​,n的范围是1e6,m的范围是1e3​。抽屉原理可以证明当n>m,是一定存在的,因为n​个数的模后前缀和肯定有相同的,而相同则表示这两个相同的模之间的连续子段和是能够整除m的。剩下的可以用dp来考虑了,dp[i][j]​表示前i个数中任意个数相加模m​后的值为j的情况是否已经存在了。#include<bits/stdc++.h>using n

2021-10-14 22:37:05 246

空空如也

空空如也

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

TA关注的人

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