随笔分类 - 解题记录
摘要:linkkk 题意: 给出长度为$n$的序列和$k$,问有多少个数对$(i,j)$满足$ai*aj=x^k$ 思路: 首先,对所有的数分解质因子。当$a_i$和$a_j$的质因子对应的指数之和$\mod k==0$的时候,是一对合法的数对。 问题就转化成了如何快速判断。 大概有两种方法,一是选择用$
阅读全文
摘要:2021女生赛B 点击查看代码 // Problem: B. 攻防演练 // Contest: Codeforces - 2021年中国大学生程序设计竞赛女生专场 // URL: https://codeforces.com/gym/103389/problem/B // Memory Limit:
阅读全文
摘要:原题链接 题意中说所有的点肯定会落在某条横线或纵线上,或者落在横线和纵线交点上,这是个很重要的性质。 如果点在横线和纵线交点上的话,他和其他点的曼哈顿距离就是最短距离。 如果某个点落在某条横线上,并且在两条纵线之间,那么在两条纵线之间并且不在同一条横线的点都可以跟他有贡献。 用map标记一下,计算贡
阅读全文
摘要:link 思路: 先来想想暴力的写法: $n^{2}$枚举左上角的顶点,$k^{2}$求最小值。 考虑优化: $1.$答案有单调性,可以二分答案,省去枚举左上角顶点的复杂度。 $2.$每次$check$的时候,将大于该数的设为$1$,小于该数的设为$0$,这样就可以在$k^{2}$枚举的时候用二维前
阅读全文
摘要:A 汽水瓶 思路: 模拟,其实也可以考虑贡献,每次都相当于少了两个汽水瓶,所以$res=n/2$ ##代码: int main(){ int n; while(cin>>n){ if(!n) break; int res=0; while(n>=2){ if(n==2){ res++;break;
阅读全文
摘要:传送门 A.Chuanpai int main(){ int _=read; while(_--){ int n=read,res=0; rep(i,1,6) rep(j,1,i) if(i+j==n) res++; cout<<res<<endl; } return 0; } B.Hotpot i
阅读全文
摘要:#题意: 给一个数组,求元组个数满足: \(l<=a[i]+a[j]<=r,i<j\) #思路: 移项后:\(l-a[i]<=a[j]<=r-a[i]\) 二分查找即可。 注意最后答案会爆$int$ #代码: const int maxn=2e5+100; int n,a[maxn],l,r; in
阅读全文
摘要:传送门 #思路 首先,将对应的位置变成相同的字母的代价是固定的,可以预处理出来。 接着,根据p所在的位置分类讨论,如果p在左半边,一定是将左半边变成跟右半边一样的代价是最小的,因为这样省去了移动指针的代价。 处理两个指针l,r,表示该部分中需要处理的左端点跟右端点,根据p的位置分类讨论就可以了。 #
阅读全文
摘要:传送门 #A Paint the Numbers ##思路: 排序后从小到大枚举,每次都将当前数的倍数并且未染色的数跟该数染同一种颜色。 ##代码: int n,a[maxn],res; int vis[maxn]; int main(){ cin>>n; for(int i=1;i<=n;i++)
阅读全文
摘要:题目链接 CF1305A Kuroni and the Gifts 思路: 将两个数组都从小到大排序,因为数组里不会有重复元素,所以和也不会重复。 代码: int main(){ int _=read; while(_--){ int n;cin>>n; vector<int>a,b; int x;
阅读全文
摘要:Incredible Chess 题解 Left Right 思路: nim模板题。 代码: #include<bits/stdc++.h> using namespace std; const int maxn=510; int a[maxn],b[maxn]; int main(){ int T
阅读全文
摘要:CF4D Mysterious Present(二维LIS) 原题链接 思路: 一维的话考虑n^2和nlogn两种写法,二维的话先对第一维进行排序,再对第二位做LIS。 注意是严格单调上升子序列 代码: const int maxn=5100; struct node{ int w,h,id; }a
阅读全文
摘要:动态规划 4.26 CF2B The least round way(数论+dp) 原题链接 题意: 题目描述 给定由非负整数组成的n×n 的正方形矩阵,你需要寻找一条路径: 以左上角为起点 每次只能向右或向下走 以右下角为终点 并且,如果我们把沿路遇到的数进行相乘,积应当是最小“round”,换句
阅读全文
摘要:Gym - 101908L Subway Lines (树链剖分+线段树) 原题链接 题意: 给定一棵树,求a-b的路径和c-d的路径 思路: 树链剖分后,用线段树维护。 在a-b的路径权值全部加1,再查询c-d的区间和就是答案。 每次统计完后记得消除影响。 代码: #pragma GCC opti
阅读全文

浙公网安备 33010602011771号