05 2022 档案
摘要:数的和与积 https://ac.nowcoder.com/acm/contest/34330/C 思路: 2和4是不可以的,除了3意外其他的都可以用三项解决,其中一项为1,剩余两项分别设为x,y. sum=x+y+1+x*y。可以化简成sum=(x+1)(y+1)。 前n项的和为n(n+1)/2,
阅读全文
摘要:链接:Problem - 1551B2 - Codeforces 题意:有m个颜色,要求每种颜色内的数字各不相同,问,颜色的最大长度多少。 题解: 判断每个数字的个数,如果大于m,那么最大长度就加一,不大于就都加到一起,看看最后能凑几对。 #include<bits/stdc++.h> using
阅读全文
摘要:D - Distinct Trio 题意:求三个数个各不相同的数目。 题解:正面考虑比较困难,可以反向思考,在总值上减去不符合的即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,
阅读全文
摘要:Problem - 1684C - Codeforces 题意: 现在有一个n*m的棋盘,每个棋子有一个值,你可以交换两列棋盘的棋子位置,使得每一行的棋子从左到右为非递减。 题解: 只需要判断一行不满足的即可,因为如果最后有答案,那么每一行的交换一定是相同的,所以判断一行即可。分两种情况,连续两个递
阅读全文
摘要:Problem - 1679C - Codeforces 题意:当t=1加入一个点,每个点可以影响一行和一列,t=2删除某个点,t=3判断这个矩形内的每个点是否都可以影响。 思路:开始时直接暴力,T了,然后看了看题解,学习了一波树状数组 Orz。 #include<bits/stdc++.h> us
阅读全文
摘要:ll lowbit(ll x){//取二进制最后一位 return x&(-x); } void update(ll x,ll y,ll n){//单点更新,更新这个点的所有子节点的和,类似于该点的前缀和 for(ll i=x;i<=n;i+=lowbit(i)) l[i]+=y; } ll get
阅读全文
摘要:1.常见的集中数据类型 1.char(n) , varchar(n)两个的区别是char(n)是固定空间,varchar(n)是动态的 //SQL中的字符串用单引号表示,不是双引号 2.int , Tinyint(-128~127), smallint. 3. double,float. 4.dat
阅读全文
摘要:题意:每次可以选择一条路径,要求这条路径中每个点都是上一个点的子节点,求最少需要几条路径将所有点走完 思路:将每个点有没有子节点判断出来,因为只有没有子节点的点需要新增一条路,所以需要路径的最小数目就是没有子节点的节点个数,从每个根节点出发,深搜一遍即可。 注意:可以开临时vector来节约时间。
阅读全文
摘要:1.dijkstra算法: 从一点开始,更新所能到达的点的最小值,不能判断有负权值的图 模板:(与Prime算法基本相同) void dij(){//堆优化模板 priority_queue<pll,vector<pll>,greater<pll>> q; memset(dis,0x3f,sizeo
阅读全文
摘要:1.prime算法 prime算法类似于bfs,就是判断每次连接的点中距离最短的,加入到树中,具体如下: prime算法要求一开始随便选择一个点作为起点,因为最小生成树包括所有点,所以起点随机即可(一般选1),将该点加入一个集合,然后判断集合中所有点与之相连的点中最小的,将其加入集合中,加入集合的点
阅读全文
摘要:——const 的一些用法 1,修饰指针 const int *p=.... 可以改变指针所指的位置,但不能改变指向位置的值。 2,修饰变量 int const * p=.... 可以改变指向位置的值,但不能改变指针的指向。 3 ,定义常变量,防止误改。 const 在代码量大的程序中,可以用来防止
阅读全文
摘要:C - Magical Rearrangement 题意 :给出0-9每个数字的使用次数,拼出最小的数字。 要求:全部用完,不能有前导零(0除外),相邻的两个数字不相同。 题解:贪心,开始没想明白什么时候输出最大的,什么时候按照最小的输出,看了看大佬的题解懂了,开始的时候,判断出现次数最多的数字ma
阅读全文