- 博客(421)
- 资源 (5)
- 收藏
- 关注
原创 Leetcode 6107. 不同骰子序列的数目
一道比较经典的dp题,感觉可以数位dp直接做,直接推状态和状态转移方程也行。时间复杂度: O(n∗6∗6∗6)O(n*6*6*6)O(n∗6∗6∗6)状态:dp[i][j][k]dp[i][j][k]dp[i][j][k]状态转移方程:边界条件:当n==1n==1n==1直接特判返回就行。...
2022-06-27 00:40:14 396 1
原创 产品相关的碎碎念
在之前的实习工作中,往往会重视产品需求的技术实现难度,以方便排期。甚至在前期的需求评审中,往往会站在一个局外人的角度去思考,觉得这些跟自己没多大关系,只去看和自身相关的部分,这样会使得我们一直局限于技术层面,对于业务产品层面的理解往往会少很多,以至于后续开发过程中跟产品沟通会产生gap。首先要保证技术评审时,可以敏锐地理解需求所实现的功能,并且意识到实现这个需求所需的大致排期,技术难点和重点,这样可以保证开发,测试等环节的实现质量。...
2022-06-23 00:28:13 288
原创 Computer Graphics Games101 学习笔记03
Assignment 0比较简单的环境配置,网上资料挺多的,这里推荐一个链接Transformation03-Transformation这一部分主要讲2D2D2D变换,通过引入矩阵来表示剪切(shear)缩放(scale)旋转(Rotation,默认以原点为中心,逆时针旋转多少度)平移(translate)线性变换用矩阵乘上输入坐标得到输出坐标的过程就叫做变换(矩阵是从右往左结合的缘故)其实可以类比初中数学中的一次函数而且可以发现一个性质:x′x'x′和xxx的行数一样
2022-05-04 01:43:46 338
原创 Games101 Computer Graphics 学习笔记 01&02
Games101 Computer Graphics 学习笔记绪论&线性代数知识回顾绪论(Overview)这一部分主要讲述什么是计算机图形学,为什么要学这个,以及这门课的主要内容和所需要的基础知识。比较有意思的是一张关于计算机图形学和计算机视觉的关系图,很生动形象。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6xBgwBr-1651483552952)(./img1.png)]线性代数知识回顾(Review of Linear Algebra)回顾
2022-05-02 17:27:01 1058
原创 实习总结(前端)
实习总结总共实习了接近6个月,第一个星期基本都在看一些有关公司文化之类的视频,第二个星期mentor就安排了一个挺大的需求给我,技术栈是Vue+elementUI,而当时我还没有开始学框架,因此需要快速上手Vue。因为当时那个需求还是挺大的,自己也就有了很大的压力,所幸后面因为人力的问题,需求拆分成了两期,并且Vue相对而言没有这么难理解,也就顺利的完成了第一个需求。后面这个需求跟了两期,不过涉及到前端的比较少,因此当时基本都在学习之前欠缺的一些前端知识。再往后又接了一个小程序的小需求,自己又补了一些
2022-03-17 16:32:42 6525 1
原创 8月3日——每日一题
每日一题计划8月3日做法一首先我们可以考虑到最终这个数组可以分成三个部分ABC。其中A部分和C部分不需要排序,B部分需要排序且最短。那么我们可以对原数组复制到一个新数组进行排序。排序后从头开始找,第一个和排序后数组值不相同的位置就是B部分的起始下标。同理可以得出B部分的结束下标,即可得到答案。时间复杂度: O(nlogn)O(nlogn)O(nlogn)空间复杂度: O(n)O(n)O(n)int findUnsortedSubarray(vector<int>& n
2021-08-04 00:34:16 172
原创 我的复健计划
我回来了从7月开始已经停了将近1个月了,最近要开始着手复建了。目前想的是,先会更新一些刷题(力扣Top100和每日一题)中遇到的有意思的题目。然后周末有时间的话会更一下最近一段学习的总结+反思(前端,八股等等都有可能)。...
2021-08-03 23:55:10 203 1
原创 我的退役贴
退役贴追忆过去不知不觉中大学的前三年只剩下半个月了,自己也从当初那个懵懂无知的少年渐渐成长成为了一名还算合格的“程序猿”,自己的竞赛生涯也算完整的结束,虽不至完美,却也足够璀璨。回顾大学前三年,大部分的时间都花在了算法竞赛上,所幸最终有了一些成果,当然也有很多遗憾,比如队伍省赛失利,区域赛自己板子被卡等等等,不过也正是这些才铸就现在的自己。大一的自己还很单纯,在程立老师的指引(感谢程教练!!)选择走上了这条路,当然也有自身的原因(初高中期间走的一直是成绩分数这条路,大学时自己想试一试其他的路)。不管
2021-06-24 17:30:21 329
原创 十大排序算法C++实现
十大排序算法C++实现七大基于选择的排序#include<bits/stdc++.h>using namespace std;int a[100],n;void bubbleSort(){//冒泡排序 for(int i=1;i<=n-1;i++){ for(int j=1;j<n-i+1;j++){ if(a[j+1]<a[j]){ swap(a[j+1],a[j]);
2021-06-15 22:36:05 196 1
原创 腾讯一面面经
腾讯一面总结(1h30min1h30min1h30min)笔试题(1h)1、实现一个格式化数字的函数 addComma,给数字添加千位分隔符做法一:把每一位拆出来然后加上分隔符function addComma(num) { var ans = []; var flag = 0; var res=""; if(num==0){ res+="0"; } else{ if(num<0) num=-num,flag=1;
2021-06-04 17:38:48 387 1
原创 第十一届山东省大学生程序设计竞赛(正式赛)
B. Build Roads题解首先需要写个暴力最小生成树的模板。然后我们可以把题目给的样例试一下,然后不难发现大多数情况答案为n−1n-1n−1,但是需要注意一个特殊情况:当L==RL==RL==R时,答案只能为L∗(n−1)L*(n-1)L∗(n−1)。我们接着打表找规律可以发现,只有当n<=5n<=5n<=5答案可能会发生变化,这种情况我们直接暴力建树跑最小生成树即可。代码#include <bits/stdc++.h>#define PI atan(1.0
2021-05-15 23:34:45 1407 1
原创 力扣5.8每日一题——状压dp
力扣5.8每日一题题解暴搜+剪枝也可以过,这里就不多说了。不难发现题目是一个NP问题,最优做法应该就是状压dp。这里就讲一下状压dp的做法。状态dp[i][j]: 前i个工人完成所有工作的完成状态为j的最优解状态转移方程考虑第i个工人完成工作的所有情况dp[i][j]=min(dp[i][j],max(dp[i-1][state],sum[j-state]))state为j的状态子集sum[j-state]表示state状态的补集边界条件dp[0][i]=sum[i] 第一个工
2021-05-10 22:38:54 337
原创 “深圳计算科研院杯“E起来编程暨第三届湖北省赛
“深圳计算科研院杯“E起来编程暨第三届湖北省赛A.A Warm Welcome题解签到题,不多说。B.Mr.Maxwell and attractions题解算是比较好想的贪心,不过有一种情况很容易忘记判断。首先第一思路是我们把所有值放近一个优先队列中,每次优先取美丽值最大的,然后把这个值乘以0.60.60.6再放进去。最后再留kkk个活动下午去,具体过程和上面类似,但是需要注意这时所有的室外活动都会自动乘上0.80.80.8。我们可以直接把所有的室外活动乘以0.80.80.8再放进队列里
2021-05-07 00:50:46 467
原创 5月4日力扣每日一题——1473. 粉刷房子 III
5月4日力扣每日一题——1473. 粉刷房子 III题解算是比较常见的dp。状态dp[i][j][k]:前i个房子,第i个房子涂成j,街区数为k的最小花费状态转移方程if(house[i]==0)dp[i][j][k]=min(dp[i-1][l][k-1],dp[i-1][j][k]) (l!=j)elsedp[i][house[i]][k]=min(dp[i][house[i]])边界条件dp[0][i][0]=0代码class Solution {public: i
2021-05-05 00:20:11 171
原创 2021浙江省赛题解(A,C,F,G,J,L,M)
2021浙江省赛题解(A,C,F,G,J,L,M)A.League of Legends题解签到题直接求和判断一下注意会爆intintint以及相等的情况。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (register int i = (t); i >=
2021-05-03 21:42:18 4100 4
原创 2021天梯赛解题报告
2021天梯赛题解L1L1-1(签到题,略过)L1-2(输出n-m*k)L1-3(分情况判断)L1-4(枚举判断)L1-5把所有数都存入数组里面,按下标取然后判断就行了。L1-6第一发过了14分就没管,赛后check原代码发现有个bug当时没注意。注意不能m==0m==0m==0时立刻输出,还需要判断一下当前串是否能跳过。判断串直接用C++中string自带的find函数即可,注意判断是否到结尾是用s[i].find("qiandao")==s[i].nposs[i].find("q
2021-04-28 15:32:34 1198
原创 2020上海ICPC区域赛——C题Sum of Log
2020上海ICPC区域赛——C题Sum of Log题目链接:https://ac.nowcoder.com/acm/contest/9925/C题意给你xxx和yyy,让你求出∑i=0x∑j=[i==0]y[i\sum^{x}_{i=0}\sum^{y}_{j=[i==0]}[i∑i=0x∑j=[i==0]y[i&j=0][log2(i+j)+1j=0][log_{2}(i+j)+1j=0][log2(i+j)+1。题解首先我们要把题目中的公式转换一下,当iii&j
2021-03-30 00:09:33 505
原创 Educational Codeforces Round 106 (Rated for Div. 2)——C题Minimum Grid Path
题目链接:https://codeforces.com/contest/1499/problem/C题解感觉有点假的一道题,尤其是那个假的结论。不难发现我们可以把问题转换成下面这个问题。首先我们知道length1+length3+length5+...=nlength_{1}+length_{3}+length_{5}+...=nlength1+length3+length5+...=nlength2+length4+length6+...=nlength_{2}+length_{4}+
2021-03-24 18:33:19 131
原创 The 15-th BIT Campus Programming Contest - Onsite Round——J题(枚举优化或拉格朗日插值)
题目链接:https://codeforces.com/gym/102878/problem/J题解这个题有两种做法,第二种做法比较好想,但是需要优化一下。这里先说第一种做法(拉格朗日插值或者高斯消元)首先题目给我们限定了F(i)F(i)F(i)的取值范围,对于每个F(i)F(i)F(i),至多有三种选择:fif_{i}fi,fi−1f_{i}-1fi−1和fi+1f_{i}+1fi+1。因此我们可以353^{5}35枚举出FFF函数的值。这样FFF函数定了,那现在问题就转换成了知道经过
2021-03-24 18:14:38 339
原创 Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)——ABC解题报告
Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)比赛链接:https://codeforces.com/contest/1501A. Alexey and Train题解题意给的有点模糊,不过大致猜出题意后模拟即可。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register i
2021-03-18 15:45:03 179
原创 Codeforces Round #656 (Div. 3)——ABCDEF解题报告
Codeforces Round #656 (Div. 3)比赛链接:https://codeforces.com/contest/1385A. Three Pairwise Maximums题解对aaa,bbb,ccc进行排序。当最大值不等于次大值表示不可能,因为肯定有一个最大数会出现两次。否则的话输出一种构造方案即可:最小值,最小值,最大值代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t)
2021-03-18 11:58:49 138
原创 Codeforces Round #661 (Div. 3)——ABCD解题报告
Codeforces Round #661 (Div. 3)比赛链接:https://codeforces.com/contest/1399A. Remove Smallest题解排序后维护差分数组,如果差分数组的最大值大于111,输出NONONO,否则输出YESYESYES。原因:我们基于贪心的原则肯定从小到大取,当ai−ai−1>1a_{i}-a_{i-1}>1ai−ai−1>1时,ai−1a_{i-1}ai−1消除不了。代码#include <bits/s
2021-03-18 00:22:51 161
原创 Codeforces Round #667 (Div. 3)——解题报告
Codeforces Round #667 (Div. 3)比赛链接:https://codeforces.com/contest/1409A. Yet Another Two Integers Problem题解按照贪心的思路,肯定先取101010,到最后差值小于101010再取这个差值即可。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s);
2021-03-17 23:30:03 202
原创 2019四川省赛——解题报告(A,B,G,H,I,J)
oj: 链接2021/3/10 训练赛A. Autochessoj: 链接题解题意有点难懂,不过还能理解,而且还有点坑。读懂题后,发现最难维护的点在于怎么快速找到最左边空着的位置。我们的做法是二分+树状数组维护,同时用mapmapmap维护每个字符串的所有位置树状数组维护非空位置的个数,这样就可以二分出最左边空着的位置,然后再根据当前插入的字符串模拟并维护mapmapmap和树状数组即可。其实想法不是特别难,不过题意有点坑,(所幸队友没被坑到。。)代码#include <bi
2021-03-14 14:46:13 1751
原创 “强智杯“2020年湖南省大学生计算机程序设计竞赛——ABDGHI
oj: 链接A.2020oj: 链接题解直接暴力维护即可。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for ( int i = (s); i <= (t); i++)#define RP(i,t,s) for ( int i = (t); i >= (s); i--)#define sc(x) scanf("%d",&x)#define scl(x) scanf("
2021-03-12 20:00:29 1498
原创 Codeforces Round #674 (Div. 3)——ABCDE解题报告
Codeforces Round #674 (Div. 3)——ABCDE解题报告比赛链接:LinkA. Floor Number题解数据范围很小,直接模拟整个过程并且维护答案即可,当然也可以直接推出公式ans=n−2+x−1xans=\frac{n-2+x-1}{x}ans=xn−2+x−1。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s);
2021-03-11 11:58:43 129
原创 Codeforces Round #677 (Div. 3)——ABCDE解题报告
Codeforces Round #677 (Div. 3)——ABCDE解题报告比赛链接:https://codeforces.com/contest/1433A.Boring Apartments题解直接按照题意模拟整个过程即可。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,
2021-03-09 11:51:31 122
原创 2020 Jiangsu Collegiate Programming Contest(C,D,H,I,J)
oj: CodeForces2021/1/27 组队赛C. Catsoj: CodeForces题意让你求出满足条件的任意一个序列并输出。条件:两个相等的值之间至少存在一个小于这个值的其他值。eg:{1,2,3}\{1,2,3\}{1,2,3}符合条件,{3,4,3}\{3,4,3\}{3,4,3}不符合条件。题解首先肯定只能有一个111,我们假设这个111在最左边。然后考虑222的位置,222只能在111的右边。333只能在222的两边,之后的类比333的情况。构造出来的序列就是
2021-03-04 16:26:41 653 1
原创 The 15th Heilongjiang Provincial Collegiate Programming Contest(A,C,F,G,H,L)
比赛链接2021/2/7训练赛Problem.A August题解不难发现上半部分是个半径为aaa的圆,下半部分利用割补小正方形的方法得出等价于一个长为2a2a2a,宽为2b2b2b的长方形。比赛时没有发现,不过队友看出下半部分面积应该是个关于aaa和bbb的表达式,并且很好算,用答案减去圆的面积反推出面积为4ab4ab4ab。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (regi
2021-02-17 22:47:49 973 3
原创 Codeforces Round #640 (Div. 4)——解题报告
闲着没事打了场div4(好像是cf唯一的一场),不是很难的题,也是比较常见的cf类型的题目。比赛链接Problem.A Sum of Round Numbers题解直接按照题意模拟拆位,并输出每一个非零的数位。代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (re
2021-02-17 15:11:40 339
原创 周行新春码拉松第二赛道——题解+代码
本题解参加2021周行新春码拉松比赛链接Problem.A 等差数列题解我们需要知道等差数列前n项和的第二个公式,不知道的话直接手推也行。公式:Sn=n∗a1+n∗(n−1)∗d2S_{n}=n*a_{1}+\frac{n*(n-1)*d}{2}Sn=n∗a1+2n∗(n−1)∗d公式里面的d=a2−a1d=a_{2}-a_{1}d=a2−a1,然后直接带入公式即可。trick:数据范围会爆int,注意开long long。代码#include <bits/stdc++.h
2021-02-09 23:01:47 178
原创 The 14th Jilin Provincial Collegiate Programming Contest部分题解(A,B,C,E,F,G,H,J,L,M)
oj: CodeForces1月31训练赛Problem A.Chord题解签到题,根据题目判断一下就行(注意是环)代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (register int i = (s); i <= (t); i++)#define RP(i,t,s) for (register int i = (t); i >= (s); i--)#define .
2021-02-02 23:40:24 1961
原创 2020 年第一届辽宁省大学生程序设计竞赛——全部题目
2020/1/23训练赛A.组队分配(签到题)oj: 牛客题解排序后直接输出。代码#pragma GCC optimize(2)#include <bits/stdc++.h>#define _for(i, a) for(int i = 0, lennn = (a); i < lennn; ++i)#define _rep(i, a, b) for(int i = (a), lennn = (b); i <= lennn; ++i)using namesp.
2021-01-25 19:51:36 2343
原创 2020ICPC 江西省大学生程序设计竞赛(A,B,E,G,H,I,K,L,M)
2021/1/16训练赛A-A Simple Math Problemjudge:牛客题意给你一个n,让你求出∑i=1n∑j=1i[gcd(i,j)==1]f(j)\sum_{i=1}^{n}\sum_{j=1}^{i}[gcd(i,j)==1]f(j)∑i=1n∑j=1i[gcd(i,j)==1]f(j)。其中f(x)表示的是数位和,eg:f(122)=1+2+2=5。题解一眼可以看出是道反演题,但是仔细想想发现不是特别好维护,然后给的范围又有点误导,让人以为可以瞎搞过(实际上真.
2021-01-25 19:50:14 3053 3
原创 Codeforces Round #693 (Div. 3)ABCDE——解题报告
比赛链接:https://codeforces.com/contest/1472A-Cards for Friends题解按照题意直接模拟就行,答案就是能 (被w乘除的最大的2的n次幂) 乘以 (被h乘除的最大的2的n次幂)。判断是否大于等于n就行了。简单做法:巧妙利用二进制运算&处理,答案就是( w&(-w) )*( h&(-h) ),这个运算在树状数组中用的比较多。麻烦做法:直接根据题意模拟即可。代码简单做法if(1ll*(w&..
2021-01-23 22:21:00 239
原创 Codeforces Round #696 (Div. 2)ABCD——解题报告
比赛链接LinkA - Puzzle From the Future题解本来以为是个规律题,还找了一个看似合理的规律,最后发现直接模拟就行了。根据题意进行贪心模拟就行了,当前位置为1时,看上一个位置的和是不是2,是的话当前位置只能为0,否则就选1当前位置为0时,看上一个位置的和是不是1,是的话当前位置只能为0,否则就选1代码#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,t) for (registe
2021-01-21 20:44:19 194
原创 Codeforces Round #691 (Div. 2)ABC——解题报告
比赛链接https://codeforces.com/contest/1459A - Red-Blue Shuffle直接求出ai>bi和ai<bi的个数就行了,如果ai>bi比较多则输出RED,如果ai<bi比较多则输出BLUE,相等的话输出EQUAL证明:首先ai==bi的情况不用考虑,因为不论怎么排列,对应位置都是相等的。然后考虑ai>bi的情况,当ai和bi都在第一位时,RED的个数会加一,ai<bi的情况同理。最后比较一下RED的..
2021-01-19 19:50:35 251
原创 2020ICPC江西省赛A——莫比乌斯反演
A-A Simple Math Problemjudge:牛客题意给你一个n,让你求出∑i=1n∑j=1i[gcd(i,j)==1]f(j)\sum_{i=1}^{n}\sum_{j=1}^{i}[gcd(i,j)==1]f(j)∑i=1n∑j=1i[gcd(i,j)==1]f(j)。其中f(x)表示的是数位和,eg:f(122)=1+2+2=5。题解一眼可以看出是道反演题,但是仔细想想发现不是特别好维护,然后给的范围又有点误导,让人以为可以瞎搞过(实际上真的可以打表过或者容斥过),然后
2021-01-16 23:42:39 579
原创 Educational Codeforces Round 102 ABCD——解题报告
比赛链接:https://codeforces.com/contest/1473A——Replacing Elements当数组中的最小值和次小值的和小于等于d时或者数组中每个位置的值都小于等于d时输出YES,否则输出NO。因为按照贪心的思想我们肯定每次选择这两个位置的值对其他位置进行赋值,所以直接判断就行了。特判一下一次都不赋值的情况就行了。#include <bits/stdc++.h>#define PI atan(1.0)*4#define rp(i,s,.
2021-01-16 00:02:16 262
原创 GDUT2020新生赛——解题报告
比赛链接https://ac.nowcoder.com/acm/contest/9692#questionA题——肥猪的钢琴床一道挺不错的dp+结论题。首先最终的字符串的形式肯定是0...01...10...0这种,分为三个部分,第一部分的全0,中间部分的全1,最后一部分的全0。我们定义状态dp[i][1/2/3]表示第i个字符属于第几个部分时最少需要删除的字符数量。状态转移方程:dp[i][1]=dp[i-1][1]+(s[i]=='1')当第i个字符属于第一部分时,.
2021-01-14 20:31:53 418
JAVA课设.zip
2020-12-11
食堂窗口信息管理系统.7z
2020-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人