自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 Leetcode5482. 二维网格图中探测环【第 33 场双周赛】【DFS判环】·踩坑一天

题目链接题意:给定n*m的字母矩阵,问是否有相同字母构成的环。思路:对每一个点dfs,向周围相同字母的格点搜索,并记录访问状态,如果访问到已访问过的格点则存在环。dfs过程中需要注意的几点:注意前缀节点的记录:由于网格中是双向边的形式,所以dfs不能向前缀节点搜索,这里做一个前缀记录即可。对于grid[i][j]我的记录方式是i*grid[0].size()+j,初始节点的前缀记为-1;注意深搜条件的判断:深搜的下一个点需要和当前格点的字母相同(其实也可以对某一个格点判断其四周相同字母的个数,只有

2020-08-24 01:35:04 220

原创 Leetcode5481. 得到目标数组的最少函数调用次数【第 33 场双周赛】【贪心】

题目链接题意:给定一目标序列和等长的初始序列(初始序列全为0),给定两种操作:序列中所有数×2对某个数+1问将初始序列变为目标序列的最少操作次数。思路:显然我们要尽量多使用*2操作,故我们对每一个数字xxx统计从0变为xxx所需的操作1和操作2的数量,统计过程中贪心使用操作1。那么我们对所有数的操作1维护一个最大值(所有数可以一起×2),对操作2累加即可。class Solution {public: int minOperations(vector<int>&

2020-08-23 17:34:57 151

原创 Leetcode5480. 可以到达所有点的最少点数目【第 33 场双周赛】【图论】

题目链接题意:给定一个有向无环图,问至少从几个顶点出发可走遍所有点。思路:只需统计入度为0的点即可,因为任意入度不为0的点均可由其他点到达。AC代码:class Solution {public: vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) { vector<int> deg(n,0); for(int

2020-08-23 17:30:01 135

原创 Leetcode5479. 千位分隔数【第 33 场双周赛】【水】

题目链接题意:给数字加上千位分隔符(每三位+一个)思路:按题意模拟,注意分隔符是'.'而不是',',然后注意数字和string的转换即可。AC代码:class Solution {public: string thousandSeparator(int n) { string s = to_string(n),ans; int count = 0; for (int i = s.size() - 1; i >= 0; --i) {

2020-08-23 17:26:50 92

原创 Leetcode5488. 使数组中所有元素相等的最小操作数【第 202场周赛】【水】

题目链接题意:存在一个长度为nnn的数组arrarrarr,其中arr[i]=(2∗i)+1(0<=i<n)arr[i]=(2*i)+1 (0 <= i < n )arr[i]=(2∗i)+1(0<=i<n)。一次操作中,你可以选出两个下标,记作 x和y(0<=x,y<n)x 和 y ( 0 <= x, y < n )x和y(0<=x,y<n)并使 arr[x]arr[x]arr[x] 减去 111 、arr[y]arr[y]ar

2020-08-16 12:59:37 196

原创 Leetcode5489. 两球之间的磁力【第 202场周赛】【二分】

题目链接题意:n个点选m个点,使得相邻两球的最小距离最大。思路:对相邻球的距离二分,注意二分范围即可。class Solution {public: bool chk(vector<int> a,int d,int n, int m){ int tmp=a[0],cnt=1; for(int i=0;i<n;i++){ if(a[i]-tmp>=d){ cnt++;

2020-08-16 12:50:06 174

原创 Leetcode5490. 吃掉 N 个橘子的最少天数【第 202场周赛】【记忆化DFS】

由于数据范围1−2∗1091-2*10^91−2∗109,所以肯定没法开数组来记忆化,我们同时注意到,不需要1-n每一个数都记忆化,因为在n较大时一直+1必然不是最优解,故而采取map记忆化的方式从n开始深搜同时维护一个最小值即可。具体思路如下:首先把初始的几个小数据记下来,n=1−>ans=1;n=2∣∣n=3−>ans=2;n=1->ans=1;n=2||n=3->ans=2;n=1−>ans=1;n=2∣∣n=3−>ans=2;对于当前数/2的情况res1=1+

2020-08-16 12:45:58 180

原创 CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398D. Colored Rectangles【DP】

题目链接题意:给定三种颜色的棍子,它们分别有R、G、B对,同时给出每种颜色每一对的长度,现在可以选择两种不同颜色的棍子组成矩形,问你用以上木棒能够组成的矩形面积之和的最大值。思路:...

2020-08-16 00:38:50 161

原创 CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327B. Princesses and Princes【模拟】

题目链接题意:给n个公主和王子,分别标号1,2,3,...,n1,2,3,...,n1,2,3,...,n,每个公主有一个心仪的王子列表,所有公主按顺序进行匹配,并且对于每一位公主也按照自己心仪列表从前往后匹配王子,如果没匹配到就不结婚。现在你可以在匹配开始之前说服某一位公主添加一个王子进入心仪列表(包办QAQ),问你最终匹配成功的数量。思路:直接按题意模拟。由于当前最多匹配完成nnn对,所以如果可以直接匹配成功nnn对,就无需操作,如果能够匹配成功不足nnn对,由于是一对一匹配,所以对于某一个未匹配的

2020-08-16 00:04:11 536

原创 CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327A. Sum of Odd Integers【找规律or数学】

题目链接题意:问你nnn是否可以分成kkk个奇数的和思路:我是找规律做的我发现对于前面的一些数,能分成的奇数数量是固定的如下:nnnkkknnnkkk11111、32012231131、34214251151、362162、47117182182、491、3191、3102202、4#include <bits/stdc++.h>#defi

2020-08-15 23:45:45 107

原创 CF-Educational Codeforces Round 84 (Rated for Div. 2)-1327C. Game with Chips【思维】

题目链接题意:给定n∗mn*mn∗m的网格和kkk个点的起始位置和目标位置,共有上下左右四种移动方式,每次移动所有的点都会一起平移一格,如果在边界不能平移就不会动,点可以重叠。问你如何移动这些点,使得他们在这移动过程中都经过各自的目标点。(移动次数≤2mn\le 2mn≤2mn)思路:既然不超过2mn2mn2mn,就直接先向上移动nnn次,向左移动mmm次,把所有的点都聚集到(1,1)(1,1)(1,1),然后再蛇形走到底就行了,以上的操作次数总共为m+n+mnm+n+mnm+n+mn显然满足条件。A

2020-08-15 23:04:29 260

原创 牛客练习赛67-C、牛牛爱博弈

题意:给定一堆石头,Frame和Alan轮流取石头,每次可以取1,2,22,23,...,2k1,2,2^2,2^3,...,2^k1,2,22,23,...,2k个,不能取的人输,问谁必胜。思路:打表,得到的表如下(0代表Frame,1代表Alan):nnnansansans11213041(可以转化为3 必败态给对手)51(可以转化为3 必败态给对手)6071(可以转化为6 必败态给对手)81(可以转化为6 必败态给对

2020-08-15 12:49:16 187

原创 牛客练习赛67-D、牛牛爱数列

题意:给定一01序列和两种操作:1.将单个字符翻转 2.将前x个字符翻转。问将序列全部变为0至少需要多少次操作 。思路:分别考虑将前i个字符全部变为1和全部变为0的最少操作次数dp[i][0]和dp[i][1],则状态转移方程如下:if (a[i]) { dp[i][0] = min(dp[i - 1][0], dp[i - 1][1]) + 1; dp[i][1] = min(dp[i - 1][1], dp[i - 1][0] + 1); } else {

2020-08-15 12:34:43 188

原创 CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398C. Good Subarrays【数学】

题目链接题意:给定一序列a1,a2,…,ana_1, a_2, \dots , a_na1​,a2​,…,an​,若连续子序列al,al+1,al+2,…,ar−1,ara_l, a_{l+1}, a_{l+2}, \dots , a_{r-1}, a_ral​,al+1​,al+2​,…,ar−1​,ar​满足∑i=lrai=r−l+1\sum\limits_{i=l}^{r} a_i = r - l + 1i=l∑r​ai​=r−l+1,称为goodgoodgood序列,求goodgoo

2020-08-15 11:35:59 275

原创 CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398B. Substring Removal Game【贪心】

题目链接题意:给定一个01字符串,每次可以删掉连续的0或1,Alice和Bob轮流进行删除,删掉的1的数量是得分,Alice先手,问Alice最大得分。思路:二者均采取最佳策略的情况下,肯定会删除最多的连续1,所以获取字符串中所有连续1的长度并降序排列,对偶数下标求和,就可以得到Alice最大分数。AC代码:#include <bits/stdc++.h>#define ll long long#define N 100005using namespace std;int T

2020-08-15 11:35:25 187

原创 CF-Educational Codeforces Round 93 (Rated for Div. 2)-1398A. Bad Triangle

题目链接题意:给定一非降序序列作为一堆线段的长度,找三个数让他们不能组成三角形。找不到输出”-1“思路:直接比较前两个和最后一个的大小即可。AC代码:#include<bits/stdc++.h>#define N 50005using namespace std;int T = 1;ll a[N];int main() { cin>>T; while (T--) { int n; cin>>n;

2020-08-15 11:31:53 120

原创 牛客练习赛67-B、牛牛爱位运算

题目链接题意:给定一序列求字序列按位与之和的最大值。思路:利用a&b≤max(a,b)a\&b\le max(a,b)a&b≤max(a,b)可知,只需求得数组内最大值即可。代码:#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iomanip>#include<

2020-08-15 01:22:22 232

原创 牛客练习赛67-A、牛牛爱字符串

题目链接题意给定一个字符串,提取其中的数字并以空格分隔输出,字符串长度0≤len≤10000 \le len \le 10000≤len≤1000思路遍历一遍字符串,遇见连续数字存到一个vector<string>里,最后处理前导零即可。AC代码:#include<cmath>#include<cstdio>#include<vector>#include<queue>#include<cstring>#inclu

2020-08-14 22:31:18 155

原创 CF-Codeforces Round #664 (Div. 2)-1395C. Boboniu and Bit Operations【位运算】

题目链接题意:给定两个长度分别为n,m(2≤m,n≤200)n,m(2 \le m,n \le 200)n,m(2≤m,n≤200)的序列{a1,a2,…,an}\{a_1,a_2,\ldots,a_n\}{a1​,a2​,…,an​}、{b1,b2,…,bm}\{b_1,b_2,\ldots,b_m\}{b1​,b2​,…,bm​}(0≤ai,bi<29)(0\le a_i,b_i< 2^9)(0≤ai​,bi​<29)定义序列{c1,c2,...,cn}\{c_1,c_2,...,c

2020-08-13 04:11:52 298

原创 CF-Codeforces Round #664 (Div. 2)-1395B. Boboniu Plays Chess【思维】

题目链接题意:给你n∗mn*mn∗m的网格和起始位置,每次可以在自己行和列内任意走动,问如何不重复的走完所有格子。思路:直接先向上走到上边界,再向左走到左边界,此时即到了(1,1)(1,1)(1,1)点,然后蛇形走位就行了,过程中维护一个visvisvis数组标记是否访问过即可。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;int T = 1;bool vis[111][111];sig

2020-08-13 02:50:04 186

原创 CF-Codeforces Round #664 (Div. 2)-1395A. Boboniu Likes to Color Balls【思维】

题目链接题意:给定四种字母("r,g,b,w")的数量,你可以把("r,g,b")三种字母每种选一个变成三个w,问你能否把这些字母通过上述操作和重组变成回文字符串。思路:能够形成回文串的条件是四个数字均为偶数或者三偶数一奇数,即奇数个数小于等于1,所以只要能变就变,让奇数个数尽量小即可.看到1e9的范围和1s的时限还是没敢写O(n)O(n)O(n)(我以为)的做法,赛后一看其实根本没有O(n)O(n)O(n),只要两步就行了,下面放一个简洁的代码。AC代码:#include<bits/std

2020-08-13 02:45:35 172

原创 牛客算法周周练19-C、粉嘤花之恋【斐波那契数列求和、矩阵快速幂】

题目链接题意:花瓣以一定规律长出,而且,每次长成新的花瓣的时候,上一次的花瓣就会都落到地上,而且不会消失。花瓣生长的规律是,当次数大于等于2时,第i次长出来的花瓣个数和上一次长出来的花瓣个数的差是斐波那契数列的第i-1项。初始的时候地上没有花瓣,树上的花瓣个数为1,第一次生长的花瓣个数为1。初始的那个花瓣就落到了地上现在,小qn想知道,经过k次生长之后,树上和地上的总花瓣个数是多少?其实就是求斐波那契数列前k+1项和思路:需要了解斐波那契求和公式:∑i=1nF(i)=F(i+2)−1\sum\l

2020-08-13 01:58:37 227

原创 牛客算法周周练19-E、地、颜色、魔法【BFS】

题目链接题意:给定一个由'.','#'组成的n*m1≤n∗m≤1061 ≤ n *m ≤ 1061≤n∗m≤106网格,其中被'#'包围的全部可以变成'#',问你最后有多少个'#'。(和原题描述有点差别 不过就是这意思)思路:处理每一个网格显然很难判断,我们直接逆向思维,把和边界相连的'.'BFS标记一下即可。然后没有被标记的就是最后答案了。AC代码(第一次写这么长,其实可以简化不少的,不过一A还是挺好的):#include <bits/stdc++.h>#define ll long

2020-08-12 22:32:40 151

原创 牛客算法周周练19-A、神秘钥匙【快速幂】

题目链接题意:n个人选m1≤m≤n1\le m \le n1≤m≤n个人,再从中选一个队长,不同的队长是不同的组合,问总的组合方式的数量(模1e9+7)。思路:即求解∑i=1N(in)\sum\limits_{i=1}^N{\dbinom i n}i=1∑N​(ni​),容易得出公式:n∗2n−1n*2^{n-1}n∗2n−1,注意快速幂优化就行。AC代码:#include <bits/stdc++.h>#define ll long longusing namespace std;

2020-08-12 22:03:16 155

原创 CF1391-Codeforces Round #663 (Div. 2)-1391C - Cyclic Permutations【思维、构造】

题目链接题意:给定一个nnn,对于nnn的某一个排列ppp,我们定义如下的连边方式将其构建为一张图:对于每一个i∈{1,2,3,...,n}i\in\{1,2,3,...,n\}i∈{1,2,3,...,n},分别在它左右两侧找到距离最近且比pip_ipi​大的元素pjp_jpj​,在i和ji和ji和j中间连一条无向边。如果找不到就不连。(注意是按下标连边,不是按值连边)。简单解释一下,对于序列p=[3,1,4,2]p = [3,1,4,2]p=[3,1,4,2],对应连出的边是(1,3):对于

2020-08-10 02:45:35 278

原创 CF1391-Codeforces Round #663 (Div. 2)-1391B - Fix You【思维】

题目链接题意:给你n∗mn*mn∗m的矩阵表示一个传送带,除了(n,m)(n,m)(n,m)外每个元素都等于’D’或’R’,D表示可以把东西向下传递,R表示可以把东西向右传递,问你最多更改几个元素,使得所有物品均可被传送带传送至(n,m)(n,m)(n,m)。思路:答案是:最后一行不为R的数量+最后一列不为D的数量。显然,我们必须更改最后一列中的所有R和最后一行中的所有D。否则,放置在这些单元格中的所有物品都会移出网格。对于其他的网格,由于只能向下或者向右,所以他们全都会走到最后一行或者最后一列。因此

2020-08-10 01:58:18 137

原创 CF1391-Codeforces Round #663 (Div. 2)-A. Suborrays【抽屉原理】

题目链接题意:找出正整数n的一个排列ppp,使得其为满足以下条件的序列(pi OR pi+1 OR … OR pj−1 OR pj)≥j−i+1(p_i \text{ OR } p_{i+1} \text{ OR } \ldots \text{ OR } p_{j-1} \text{ OR } p_{j}) \ge j-i+1(pi​ OR pi+1​ OR …&nb

2020-08-10 01:48:44 192

原创 Leetcode5485. 找出最长的超赞子字符串【第 32 场双周赛】

题目链接题意:给你一个字符串 SSS。请返回 SSS 中最长的 超赞子字符串 的长度。「超赞子字符串」需满足满足下述两个条件:该字符串是 SSS 的一个非空子字符串进行任意次数的字符交换重新排序后,该字符串可以变成一个回文字符串1≤s.length≤1051\le s.length \le 10^51≤s.length≤105, sss 仅由数字组成思路:我们首先明确「超赞子字符串」的性质,因为可以任意交换顺序,所以它仅需满足回文串中字符数量的限制,而无需满足顺序限制;所以字符串是「超赞子字

2020-08-09 18:35:57 223

原创 Leetcode5468. 第 k 个缺失的正整数【第 32 场双周赛】

题目链接题意:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。思路:鉴于arr的长度较小(2000),直接开2001的数组记录arr内出现的数字就行。class Solution {public: int findKthPositive(vector<int>& arr, int k) { vector<bool> flag(2001); int cnt=0,x=1;

2020-08-09 01:25:02 142

原创 Leetcode5469. K 次操作转变字符串【第 32 场双周赛】

题目链接题意:给定一小写字母字符串,第i次操作可把任一位字符切换i次,切换操作即把字符用字母表中下一个字符替换之,假设字母表成环,即zzz的下一位是aaa,当然也可以选择不切换,每一位至多只能进行一次操作。问能否在k次操作之内将字符串sss变为ttt。思路:将每一位的切换最小值(即最早在第几次操作进行切换)indindind 处理出来,显然1≤ind≤251\le ind \le 251≤ind≤25,再对于每个indindind,计算他们最晚是第几次操作可以完成,判断最晚操作indi+(num[ind

2020-08-09 01:12:15 207

原创 Leetcode5470. 平衡括号字符串的最少插入次数【第 32 场双周赛】

题意:每个左括号匹配两个连续的右括号,问插入多少字符可使字符串平衡思路:记录左括号的数量,每次遇见右括号判断是否为连续右括号,如果是,直接消去一个左括号(left−−)(left--)(left−−),如果不是,添加一个右括号;最后对于每一次消去,要判断左括号数量是否大于0,如果小于0了,补上一个左括号即可。AC代码:class Solution {public: int minInsertions(string s) { int left=0,ans=0;

2020-08-09 00:54:41 253

原创 杭电多校第六场-1002 Little Rabbit‘s Equation

题目链接 (这里贴的是比赛内的链接,可能需要登多校账号)题意:给定一个运算表达式,形式上满足 num1 op num2=num3(op∈{+,−,∗,/})num_1 \space op \space num_2=num_3 (op \in \{+,-,*,/\})num1​ op num2​=num3​(op∈{+,−,∗,/})问你这个表达式在何种进制下(2−16)(2-16)(2−16)成立,输出最小的可行进制。思路:模拟题意就行,处理出表达式的三个运算数,

2020-08-06 19:14:11 182

原创 CF1399-Codeforces Round #661 (Div. 3)-D. Binary String To Subsequences(构造、模拟)

题目链接题意:给定一个01字符串,将其分成n个子序列,使得每个子序列都没有连续的0或1,问n的最小值和每一个字符所属的序列编号。思路:使用两个队列q0,q1q0,q1q0,q1分别存储0和1的下标(同时两个队列的长度之差也体现了0和1的数量差),遍历字符串:遇见’0’时,若q1为空则必须开辟一个新的子序列来存储这个多出来的’0’,若q1不为空,它就直接放到上一个1所在的子序列的后面,也就是子序列编号相同。遇见’1’时同理AC代码:#include<bits/stdc++.h>

2020-08-06 07:56:23 586 3

原创 CF1399-Codeforces Round #661 (Div. 3)-C. Boats Competition(暴力)

题目链接题意:给定一个数字序列w1,w2,…,wn(1≤n≤50,1≤wi≤n)w_1, w_2, \dots, w_n(1 \le n \le 50,1 \le w_i \le n)w1​,w2​,…,wn​(1≤n≤50,1≤wi​≤n),从中挑选出和相等(和不确定)的二元组,问你最多能够组合出的二元组的数量。思路:注意到n和wiw_iwi​都很小,故直接从[2,2∗n][2,2*n][2,2∗n]枚举二元组的和SSS,记录最大值即可。AC代码:#include<bits/st

2020-08-06 06:51:16 368

原创 CF1399-Codeforces Round #661 (Div. 3)-B. Gifts Fixing (贪心)

题目链接题意:给定两个序列{a1,a2,…,an},{b1,b2,…,bn}\{a_1, a_2, \dots, a_n\},\{b_1, b_2, \dots, b_n\}{a1​,a2​,…,an​},{b1​,b2​,…,bn​},给定三种操作:1.ai=ai−1a_i=a_i-1ai​=ai​−12.bi=bi−1b_i=b_i-1bi​=bi​−13.ai=ai−1a_i=a_i-1ai​=ai​−1 andandand bi=bi−1b_i=b_i-1bi​=bi​−1问最少的

2020-08-06 06:37:33 228

原创 CF1399-Codeforces Round #661 (Div. 3)-A. Remove Smallest(水题)

题目链接题意:给定一个序列,每次操作可以任选两个差的绝对值小于等于1的元素并删掉其中的较小数,问你能否通过有限次操作把序列删到只剩一个数。思路:排序,计算相邻数的差,只要有大于1的就不可能达到目标。AC代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define pb push_back#define rep(i,a,b) for(int i=a;i<=b;i++)#define fre

2020-08-06 06:29:10 181

原创 CF1399-Codeforces Round #661 (Div. 3)-E1. Weights Division (easy version)

传送门:题目链接题意:给定一棵边权树,树的总价值是根节点到所有叶子节点所经过的距离之和∑v∈leavesw(root,v)≤S\sum\limits_{v \in leaves} w(root, v) \le Sv∈leaves∑​w(root,v)≤S,距离即根节点到叶子节点经过所有边的边权和。给定一个操作:选择任意一条边将其边权值除以二(向下取整)(即边权wi:=⌊wi2⌋w_i := \left\lfloor\frac{w_i}{2}\right\rfloorwi​:=⌊2wi​​⌋)。

2020-08-06 06:23:47 559 4

数据库系统基础讲义第06讲SQL语言之概览.pdf

基本内容 1. SQL语言概述? 2. SQL语言之DDL-定义数据库 3. SQL语言之DML-操纵数据库

2020-08-02

数据库系统基础讲义第05讲关系模型之关系演算.pdf

哈尔滨工业大学数据库基础mooc同步讲义ppt。数据库系统基础讲义第05讲关系模型之关系演算 基本内容 1. 关系演算之关系元组演算 2. 关系演算之关系域演算 3. 关系演算之安全性 4. 关于三种关系运算的一些观点

2020-08-02

数据库系统基础讲义第04讲关系模型之关系代数.pdf

哈尔滨工程大学mooc配套讲义,数据库MOOC,第4讲 关系模型之关系代数基本内容 1. 关系代数之基本操作 2. 关系代数之扩展操作 3. 关系代数之组合与应用训练 4. 关系代数之复杂扩展操作(选学)

2020-08-01

CCF2020评审细则.doc

东北大学计算机科学与工程学院2020年CCF评审细则,为倡导大学生积极进取、求知求真,激励优秀,扩大CCF的影响,中国计算机学会设立面向高校在校本科生的“CCF优秀大学生奖(CCF Elite Collegiate Student Award)”。

2020-07-31

空空如也

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

TA关注的人

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