Jetiaime
码龄5年
关注
提问 私信
  • 博客:15,935
    15,935
    总访问量
  • 57
    原创
  • 804,350
    排名
  • 8
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-01-10
博客简介:

weixin_46175963的博客

查看详细资料
个人成就
  • 获得11次点赞
  • 内容获得4次评论
  • 获得28次收藏
  • 代码片获得156次分享
创作历程
  • 57篇
    2020年
成就勋章
TA的专栏
  • SCAU周训
    18篇
  • AcWing
    32篇
  • CodeForces
    1篇
  • 专题训练
    2篇
  • 数据结构
    1篇
  • SCAU训练
    2篇
兴趣领域 设置
  • 大数据
    hadoophivestormsparketl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

SCAU周训8-G:URAL - 1821

1.题目描述:2.题意:给n个人,以及他们跑步所需要的时间,现在比赛的规则是:按名次依次开始跑,下一位要比上一位慢30s开跑,现在问:到达终点时,第i个人暂时是第一名的人数,以及其姓名的字典序输出。3.思路:模拟。 这是一道阅读理解题,你永远可以相信标哥翻译。 我们首先先按照罚时跑——也即比赛时候的真正的比赛时间排序,然后遍历一下数组,如果他跑步所需的时间是现在最少的,那么就加入到答案当中。4.代码://G//#include<bits/stdc++.h>//#pragma
原创
发布博客 2020.07.07 ·
260 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

SCAU周训8-A:POJ - 1836

1.题目描述:2.题意:让你从原序列中抽出几个人,使得每个人都可以看不到左边或者右边的人。最少抽出多少个人?!3.思路:DP[LIS]。 如果要看不到人,那么必定这个队列是一个单调的序列,但是它可以选择方向,那么就是一个类似于三角形一样的序列,从中间往两边递减。要求最少的人,我们就要求一个最长的递增序列的长度,典型LIS。这题两边的思路可以直接变成从头一次,然后反过来再一次。那么组合的时候就选左边一个,右边一个,选最大的就OK了。4.代码://A#include<iostream>
原创
发布博客 2020.07.07 ·
170 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训8-C:计蒜客 - A1108

1.题目描述:2.题意:给出一个图,求所有刨去某个点的最短路径的权值和。3.思路:1)暴力。【O(n4),TLE】。直接在循环1->k里跑floyd。2)分治+floyd。 【O(n3logn),AC】。这个思路我还得学个几百年。 直接求循环肯定是T的,300也承受不来4次方的摧残啊!我们来想想,每次挖掉一个点,对图重新求一遍最短路,其实有非常多的边的信息是不变的。这个重复计算我们可以去掉!那么我们该怎么利用上之前的信息呢?!分治这个时候就给了我们一个思路,我们可以先算一部分的,然后把这一
原创
发布博客 2020.07.07 ·
242 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训4-G:URAL - 1204

1.题目描述:2.题意:x*x=x(mod n),给定n,求出所有小于n的x,升序输出。3.思路:1)扩展欧几里得。【待补】2)逆元+费马小定理。 我们来看一个平凡解——x=0。由于这个是看得出来的,我们就直接输出,然后看一个也是比较平凡的解——x=1。x=1是怎么来的呢?当x与n互质的时候,xx=x(mod n)->x=1(mod n) 那么在x<=n的范围内,x=1。顺着这个思路,我们想:x和n不互质呢?我们分别讨论一下:假设n=pq,则:当gcd(x,n)=p时,有:x=1(
原创
发布博客 2020.07.03 ·
186 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训4-F:URAL - 1057

1.题目描述:2.题意:给你一个区间[X,Y],计数区间中所有由K个不同的B的幂的和组成的数字的个数。3.思路:数位dp。 题意说白了:计数B进制下,数字由K个1其余都是0组成的数字的个数。4.代码://F#include<bits/stdc++.h>#define rep(i,a,b) for(int i=(a);i<(b);++i)#define mem(a,b) memset(a,(b),sizeof(a))using namespace std;typed
原创
发布博客 2020.07.03 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x60 图论——AcWing 349. 黑暗城堡

1.题目描述:2.题意:略。3.思路:最短路径树。 这题和我周训那题类似,这不过这次是把边权改成了w,我们跑一遍迪杰斯特拉算法,然后再去找每个节点有多少个前驱可以选择。然后乘起来就搞定了。4.代码://AcWing 349. 黑暗城堡//#include<bits/stdc++.h>//#pragma GCC optimize(3,"Ofast","inline")#include<iostream>#include<string>#include
原创
发布博客 2020.06.30 ·
259 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训1-E:CodeForces - 1005F

1.题目描述:2.题意:给你一个图,希望你能找出有多少种方式,使得这个图从1到达任意点所需要的点数之和最小。3.思路:最短路径树。 这题考了一个比较少见的数据结构——最短路径树。 由于我们做单源最短路的时候,其实出现的是一个树状的结构,但是我们并没有去记录下这棵树,所以我们只需要寻找每个节点的前驱就ok啦。对于这题来说,我们图上的边权全都是1,所以我们可以直接进行bfs,然后先记录下所有点到1的距离,因为前驱有很多,所以我们再进行dfs找前驱,如果选这个前驱,就在边上打上‘1’的标记,否则打
原创
发布博客 2020.06.29 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训3-H:URAL - 1501

1.题目描述:2.题意:给你两个01序列,希望你生成一个01序列,使得其在生成过程中,01的差值不超过1。输出可能的选择顺序【任意一个】,或者“Impossible”。3.思路:dfs+记忆化。1)暴力dfs+记忆化路线剪枝。记录下选择的左右堆以及选择的0和1的个数,碰到重复走的路之间剪枝掉。部分代码:int n,m;char a[maxn],b[maxn];int tot;int ans[maxn<<1];int dp[maxn][maxn];bool flag;
原创
发布博客 2020.06.28 ·
179 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训2-H:HDU - 4135

1.题目描述:2.题意:问A到B的范围内,与N互质的数字有多少个。3.思路:唯一分解定理+容斥原理。 这题我们先来看看互质的条件:gcd(a,b)==1。1)那么我们可以先把N分解,然后划去A到B范围内,N的质因数的倍数。 那么问题就转化为,求A到B范围内,N的质因数的倍数的多少(用num表示),然后最后的答案就是:B-A+1-num。2)那么我们下一个问题就是,如何求倍数的数量了。由于我们直接求A到B的数量,边界比较麻烦。所以我们转换为:1到B的以及1到A-1的数量,然后相减就好啦!3)那
原创
发布博客 2020.06.27 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训2-B:HDU - 5313

1.题目描述:2.题意:给我们一个二分图,要我们增加边,使得这个二分图变成完全二分图。问我们能够最多增加多少条边。3.思路:二分图染色+dp+bitset优化。 有一说一,这题数据是真的水,我自己造的数据都能卡AC代码。1)我们首先想想如何使得二分图的边数最多:那么自然是当两边的点数都接近n/2时候,边的数目是最多的。那么我们自然是要求出两边点的数目啦,其实我们只需要其中的一边的数目就够了,因为另一边的数目我们可以直接求出来。所以我们把最大加边问题,转化为:求一边点能够多么接近n/2个点,求这
原创
发布博客 2020.06.27 ·
145 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x40 数据结构进阶——AcWing 240. 食物链

1.题目描述:2.题意:略。3.思路:a)带权并查集。 这是一道经典的带权并查集的题了。【最近刚学,拿来练手。】 关系之间给出来了:吃,被吃,同类。那么我们只需要按关系分配权值就可以了。我们这里设定:0:同类。1:吃祖先。2:被祖先吃。 为啥这么设计呢?首先由于我们初始化的时候默认为0,自己和自己自然是同类啦,而1和2刚好是关于3互补的。设计好权值,我们就可以按照带权并查集的做法去做了。4.代码://AcWing 240. 食物链//#include<bits/stdc++.h&
原创
发布博客 2020.06.26 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训1-H:POJ - 3061

1.题目描述:2.题意:给你长度为N的序列,选出一段最短的连续子序列使得其和大于等于S。3.思路:a)双指针/尺取法。 固定两个指针i和j,如果和不够S就右端点挪,足够就左端点挪。扫一遍记录下最短就OK了。//H//#include<bits/stdc++.h>//#pragma GCC optimize(3,"Ofast","inline")#include<iostream>#include<string>#include<algorith
原创
发布博客 2020.06.25 ·
153 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SCAU周训1-B:URAL - 1003

1.题目描述:2.题意:已知一个01序列,给出若干个区间以及奇偶信息,信息代表:在[l,r]区间里,1数目的奇偶性。问在这些信息里,第一个出错的是哪一个信息,如果没有,输出所有信息数m。3.思路:带权并查集。 【老子连老司机树都想到了但是就是不会带权并查集QwQ】如果做过HDU-3038的话会发现,这两题惊人的相似。都要求与之前信息相矛盾的信息。对于带权并查集我们要先知道两个操作:找祖先以及合并集合:a)找祖先,也就是:find操作。//par[x]:x的祖先;val[x]:x与祖先之间
原创
发布博客 2020.06.25 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x20 搜索——AcWing 173. 矩阵距离

1.题目描述:2.题意:略。3.思路:BFS。【flood-fill问题:一个起点到其他位置的最少步数】由于这题其实就是多源最短路问题。但是我们的权值是1,所以我们就可以用BFS来做。(BFS可以看成是权值为1的dijstra算法)由于是多源最短路,这个我们可以用Johnson多源最短路的思想,建立一个虚拟源点S,源点S到矩阵‘1’的距离为0,所以我们可以直接在队列里面放入所有矩阵‘1’的点,然后用BFS扩展。4.代码://AcWing 173. 矩阵距离//#include<bits
原创
发布博客 2020.06.24 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x00基础算法——AcWing 108. 奇数码问题

1.题目描述:2.题意:略。3.思路:数学+思维。 【这谁会做啊!】 首先我们观察,对于一个空格它有两种操作:左右移动,上下移动。我们要确定两个矩阵是否一样,就要看在这两种操作下都不变的量,然后这个量就是我们对比的依据。一般对于这种矩阵题,都可以化成一个一维的串。如果化成串之后,我们学过的具有某些特质的数【目前为止】就只有:逆序数。我们发现:上下操作不改变逆序数的奇偶,左右操作不改变逆序数的大小。于是我们有了一个指标——序列的逆序数。逆序数奇偶性相同,则可以。否则,则不行。4.代码://A
原创
发布博客 2020.06.22 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x20 搜索——AcWing 171. 送礼物

1.题目描述:2.题意:略。3.思路:双向搜索(meet in the middle)。 首先先把序列分成前后两部分,然后搜前一半,存起来,再搜后一半。因为有前一半的数据,我们搜后一半的时候,就可以用w-sum的方式搜索。剪枝:a)符合性剪枝:sum>w就returnb)搜索顺序剪枝:由于有第一个,我们可以从大到小进行搜索c)无用性剪枝:当我们最终的答案已经到底w的时候,就可以直接返回了4.代码://AcWing 171. 送礼物 //#include<bits/stdc
原创
发布博客 2020.06.22 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x20 搜索——AcWing 170. 加成序列

1.题目描述:2.题意:略。3.思路:构造/搜索。 这题可以是一道构造题,但是我们看100的数据量,可以尝试着用搜索来解决。因为它要求最短的序列长度,所以我们采取迭代加深搜索。每次限制搜索的深度d,由于我们确定会在比较浅的层就能搜到答案,所以我们每次对深度为d的搜索树进行遍历,如果没有答案就加深一层,直到找到。剪枝:1)由于我们要求最短,那么我们其实用越大的数凑n越好,所以我们选择从大到小的方式遍历。2)由于我们可以凑出来的数会有重复,去重也能加快我们的搜索。4.代码://AcWing
原创
发布博客 2020.06.20 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

AcWing 刷题计划:0x00基础算法——AcWing 112. 雷达设备

1.题目描述:2.题意:略。3.思路:转化+贪心。 这题最最最难的就是第一步:转化。首先,题目中的d是半径,那么如何确定这个圆心呢?这可能是很多人一开始会去想的问题。但是这道题并不需要去这样思考,由于固定圆心太麻烦,所以我们选择换到一些已知的东西上去想:岛屿所能够到达的边界是哪里? 我们发现每个岛屿它都拥有一个探测器的边界区间,那就是:l=x-sqrt(d2-y2)r=x+sqrt(d2-y2)只要探测器在这个区间之内,小岛就可以被探测到!我们并不需要用探测器去确定所需要探测的岛,而是由岛确
原创
发布博客 2020.06.20 ·
228 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x00基础算法——AcWing 122. 糖果传递

1.题目描述:2.题意:略。3.思路:思维+贪心。 【这谁能想得到.jpg】 首先,我们对于似乎一开始是毫无头绪的。1)但是我们发现,如果传糖果,那必然是向左右最多各传递一下,不然的话不符合最少的原则,那么我们可以先设定传的值是多少:Xi——第i个人传递给第i+1个人的糖果数,Xi>0则失去,Xi<0则得到。那么ans=|X1|+|X2|+…+|Xn|。2)但是现在我们还是没有什么很好的解决这个式子的办法,转而我们来构建已知与未知的联系:有了Xi的表示之后,我们就可以得到一系列等
原创
发布博客 2020.06.19 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AcWing 刷题计划:0x20 搜索——AcWing 165. 小猫爬山

1.题目描述:2.题意:略。3.思路:深搜。 深搜很重要的是搜索的顺序以及决策的方式。1)枚举猫。直接枚举猫在哪辆车里面,结果是T飞了。【不过我不知道为啥,可能的一个原因是,直接枚举猫不好剪枝,会超时。】部分代码:void dfs(int cnt){ if(cnt==n){ans=min(tmp+1,ans);return;} if(tmp>=ans) return; rep(i,0,n) { if(vis[i]) continue; vis[i]=true; i
原创
发布博客 2020.06.19 ·
193 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多