Algorithm算法
算法编程题目
starbuling~
有棱有角,还会发光
展开
-
AcWing 第79场周赛
周赛链接:https://www.acwing.com/activity/content/competition/problem_list/2644/原创 2022-11-30 20:53:34 · 245 阅读 · 0 评论 -
AcWing 4604. 集合询问
一个模版可以对应很多个数,相反的,通过一个数x可以计算出对应的唯一的模版s。所以用数组模拟哈希表就可以达到 O(1) 查询。通过长度可以发现,s最大是。,大概是100,000。原创 2022-09-07 12:43:23 · 129 阅读 · 0 评论 -
【ccf】202012-2 期末预测之最佳阈值【枚举、前缀和、二分/双指针/循环判断条件】
原题链接❄️ | 题目描述给出n个标准,以及对应的n个结果。结果为1代表通过考试,结果为0代表不通过考试要求在n个标准中选出一个作为阈值。使得预测准确的数量达到最大预测准确是:当标准 < 阈值,结果为0;当标准 > 阈值,结果为1如果有预测准确的数量一样的阈值,选择最大的。✨ | 实现思路首先应该将n组数据排序加入选择3作为阈值,那么预测准确的次数就是:3右边(包括3)结果为1的数 + 3左边(不包括3)结果为0的数【这里可以用前缀和快速统计】从大到小枚举,最后选择出答案。原创 2021-10-12 15:11:00 · 232 阅读 · 0 评论 -
【ccf】202009-2 风险人群筛查【模拟、枚举】
原题链接:http://118.190.20.162/view.page?gpid=T112❄️ | 题目描述给出一个矩形区域给出 n 个人的行动轨迹,每一组数据包含多个坐标有坐标处于矩形区域内称为经过;连续有 k 个坐标处于矩形区域内,称为逗留。统计经过人数和逗留人数✨ | 实现思路遍历每一个人的行动路线:两个标记 flag1、flag2。记录是否经过或逗留最后输出个数???? | 具体代码```cpp#include <iostream>using namespac原创 2021-10-12 10:52:43 · 94 阅读 · 0 评论 -
【ccf】201909-4推荐系统(C++)【多路归并+set维护有序序列】
更多题目请看CCF历年真题汇总题目描述输入2 31 32 23 183 100 1 11 0 4 31 0 5 13 10 2 23 10 1 12 0 13 2 1 13 1 1 1输出111 41 211414-1思路set 可以在nlogn 复杂度之内动态维护一个有序序列。所以用set<PII>维护每一类商品的{id, score}. (PII 是 pair<int,int>)score是从大到小小选,所以原创 2021-04-09 08:53:36 · 334 阅读 · 0 评论 -
【ccf】202009-1 称检测点查询【pair、排序】
原题链接❄️ | 题目描述给定(x,y)以及n个点的坐标求出n个点中,距离到(x,y)最近的三个点的编号✨ | 实现思路用pair记录距离和节点编号id【pair默认对first进行排序】排序后输出距离最小的前3个点???? | 具体代码```cpp#include <iostream>#include <algorithm>using namespace std;typedef pair<int, int> PII;#define x fir原创 2021-10-12 11:10:35 · 85 阅读 · 0 评论 -
【ccf】202009-3 点亮数字人生【拓扑排序、大模拟】
原题链接❄️ | 题目描述模拟一个电路的实际运行情况。一个电路中有 m 个输入以及 n 个功能器件。在这些器件之间有线路相连,一个功能器件可能有多个输入。这构成了一个有向图。如果图中有环,则输出 “LOOP” 并结束否则则模拟电路运行 S 次。每次给出 m 个输入以及 cnt 个需要输出器件值的编号(无序),需要按照编号顺序输出电路运行后这些器件的输出值。每个检测点有多组数据,t 组。✨ | 实现思路拓扑排序 + 大模拟首先根据题目的输入建图。将输入以及功能器件都看成节点,连接的电路看成原创 2021-10-25 14:47:04 · 259 阅读 · 0 评论 -
【ccf】202104-3 DHCP服务器【模拟】
原题链接:http://118.190.20.162/view.page?gpid=T126这个题目所有的步骤都在实现细节里面,相当于伪代码,所以写起来还是比较容易的代码:#include <iostream>using namespace std;const int N = 10010;struct IP{ int state; // 0:未分配 1:待分配 2:占用 3:过期 int t; // 过期时间 string owner原创 2021-10-12 10:15:13 · 120 阅读 · 0 评论 -
【ccf】201312-3 最大的矩形(C++)【枚举】
题目描述思路枚举每个矩形该作为左边界,向右扩展,计算矩形面积。(注意矩形高度一定是枚举过的所有矩形高度中的最小值,这样才能构成大矩形)复杂度 : O(n2)n = 1000, 复杂度满足要求代码#include<bits/stdc++.h>using namespace std;const int N = 1010;int h[N];int n;int cal(int pos){ int a = h[pos]; //当前的高度 int res原创 2021-04-08 10:46:51 · 293 阅读 · 0 评论 -
【ccf】201912-3 化学方程式(C++)【递归处理字符串】
更多题目请看CCF历年真题汇总题目描述样例输入11H2+O2=H2O2H2+O2=2H2OH2+Cl2=2NaClH2+Cl2=2HClCH4+2O2=CO2+2H2OCaCl2+2AgNO3=Ca(NO3)2+2AgCl3Ba(OH)2+2H3PO4=6H2O+Ba3(PO4)23Ba(OH)2+2H3PO4=Ba3(PO4)2+6H2O4Zn+10HNO3=4Zn(NO3)2+NH4NO3+3H2O4Au+8NaCN+2H2O+O2=4Na(Au(CN)2)+4NaOHC原创 2021-04-08 18:57:00 · 337 阅读 · 0 评论 -
【ccf】202012-1 期末预测之安全指数【模拟】
原题链接#include<bits/stdc++.h>using namespace std;int ans;int n;int main(){ cin >> n; while(n --) { int a, b; cin >> a >> b; ans += a*b; } cout << max(ans, 0); return 0;}...原创 2021-10-12 11:39:06 · 108 阅读 · 0 评论 -
CCF-CSP之旅
CCF之旅(C++/python)主要使用C++,偶尔使用python.(因为有的题用C++太难啦 ????) -_-(不定时更新ing,直到全部题目写完)2021.4.8是从第一次2013年ccf开始刷的题, 过了一个月,已经解决72题,但是大多数都是前两题,有一部分的3,4题,极少数的第5题.而且有的是用python实现的。C++代码太复杂了。还有一周(其实还有3天?)就是第22次ccf,打算写博客记录对外输出,也算是复习之前写过的题。2020年12月试题编号试题名称考原创 2021-04-08 10:16:22 · 345 阅读 · 0 评论 -
【ccf】201312-5 I’m stuck!(C++)【dfs】
更多题目请看CCF历年真题汇总题目 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方格; '+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格; '-': 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#'方格移动一格; '|': 当玩家到达这一方格后,下一步可以向上下两个方向相邻的一个非'#原创 2021-04-09 20:05:05 · 225 阅读 · 0 评论 -
【ccf】202012-4 食材运输【贪心、dfs、状压dp、二分】
文章目录❄️ | 题目描述✨ | 实现思路???? | 具体代码❄️ | 题目描述https://www.acwing.com/problem/content/3303/http://118.190.20.162/view.page?gpid=T120NNN个节点的一棵树。每个节点需要不同种的食材一共有KKK种食材,有K辆车,每一辆车负责运输一种食材,要将这种食材送到所有需要它的节点最多有MMM个起点,可以任意选择不超过MMM个起点且所有车可以同时出发。求一个方案使得所有酒店等待时间的最大值最原创 2021-10-10 21:55:42 · 538 阅读 · 0 评论 -
【ccf】202104-2 邻域均值 【二维前缀和】
原题链接❄️ | 题目描述给定一个 n*n 正矩阵,里面包含元素均为正整数求有多少个元素处于“较暗区域”较暗区域:(x,y)的邻域为这些位置所有元素的平均值如果小于一个阈值 t, 就认为 (x,y)处于较暗区域✨ | 实现思路0<n≤6000<n≤6000<n≤600全部遍历一遍需要 360000,二维前缀和 O(1)O(1)O(1) 查询一个邻域内所有元素的和 sumPs:这里也可以用一维前缀和优化一维的查询,时间复杂度也可以通过邻域内所有元素的数量是 cnt判断原创 2021-10-12 15:34:24 · 141 阅读 · 0 评论 -
【ccf】201312-4 有趣的数(C++)【组合数学】
题目描述思路0,1有关;2,3有关。所以把其分为两类。两类之间的排序互不干扰,而内部排序才要求有序。一共有n个数 ,看成n个空的位置 __ __ __ __ __ __0,1序列 假设有k个数其序列一定是 00……11的形式(0在1前)把k个数放在n个位置里,应该是 Cnk 种情况, 但是0不能放在首位,所以答案应该是 Cn-1k 种情况01序列内部可能是 0001 0011 0111 (假设k=4), 所以就有 k-1 种情况2,3序列.原创 2021-04-08 11:40:02 · 250 阅读 · 0 评论 -
【ccf】202104-1 灰度直方图【模拟】
原题链接❄️ | 题目描述一幅长宽分别为 n 个像素和 m 个像素的灰度图像可以表示为一个 n×m 大小的矩阵 A。其中每个元素 Aij(0≤i<n、0≤j<m)是一个 [0,L) 范围内的整数,表示对应位置像素的灰度值。具体来说,一个 8 比特的灰度图像中每个像素的灰度范围是 [0,256)。一副灰度图像的灰度统计直方图(以下简称 “直方图”)可以表示为一个长度为 L 的数组 h,其中 h[x](0≤x<L)表示该图像中灰度值为 x 的像素个数。显然,h[0] 到 h[L−1原创 2021-10-12 11:16:18 · 159 阅读 · 0 评论 -
【ACM/二分】二分清晰入门级讲解
//r = midint l = 0, r = n - 1 , mid;while(l < r) { mid = (l + r) >> 1; if(a[mid] >= k) r = mid; else l = mid + 1;}//l =midint l = 0, r = n - 1, mid;while(l < r) { mid = (l + r + 1) >> 1; .原创 2020-09-26 09:56:53 · 210 阅读 · 0 评论 -
2020牛客寒假算法基础集训营2——F 拿物品
思路仍然是大佬题解一个人拿走了ai,则另一个人就失去了bi,所以都优先选择总价值最高,不是只拿自己价值最高的物品所以按总价值从大到小排序,依次输出物品原本的序号。AC代码:#include <bits/stdc++.h>using namespace std;const int maxn = 200002;int n;struct Node{ int x...原创 2020-02-25 20:06:47 · 122 阅读 · 0 评论 -
2020牛客寒假算法基础集训营第二场——E 做计数
思路牛客竞赛题解看到根号,先平方m是完全平方数,所以 枚举[1,n]的所有完全平方数(1 * 1,2 * 2,3 * 3……),对于每一个完全平方数求其因子个数;AC代码:#include <bits/stdc++.h>using namespace std;int n,num;int fun (int x) //求x的因子个数;{ int co...原创 2020-02-25 16:46:13 · 106 阅读 · 0 评论 -
2020牛客寒假算法基础集训营第二场——D 数三角
思路牛客竞赛题解(1)判断钝角三角形对于????ABC,向量AB·AC <0 || BA·BC<0 || CA·CB<0即可(2)排除共线向量AB = (x1,y1), AC = (x2,y2),若AB、AC共线,则x1/x2 = y1/y2 即x1y2 = x2y1AC代码:#include <bits/stdc++.h>using namespace s...原创 2020-02-25 15:03:23 · 189 阅读 · 1 评论 -
洛谷P1101单词方阵
题目描述给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如: 思路:因为同一单词摆放时不再改变方向,所以不用深度优先搜索(dfs),只需要在2维字符数组种,...原创 2020-02-24 17:34:13 · 427 阅读 · 0 评论 -
洛谷P1605迷宫
附大佬讲解视频AC代码:#include <bits/stdc++.h>using namespace std;int n, m, T, num, sx, sy, fx, fy;int vis[10][10]; //记录访问过的节点int barrier[10][10]; //记录障碍int dx[] = {1,0,-1,0};int dy[] = {0,1,...原创 2020-02-23 21:00:27 · 164 阅读 · 0 评论 -
八皇后问题拓展——n皇后
学习了2位大佬的思路,我这个蒟蒻才写出来大佬1大佬2#include <bits/stdc++.h>using namespace std;const int maxn = 100;int vis[3][maxn];int n, num, pos[maxn];void pr() //展示整个棋盘{ for(int i=1; i<=n; i++)...原创 2020-02-23 10:49:10 · 166 阅读 · 0 评论 -
2020寒假牛客第一场——C umi和弓道
不会写,先白嫖了,之后再看题解#include<bits/stdc++.h>using namespace std;/*连接靶子和人,算出这条线与坐标轴的交点注意:挡不住自己象限内的靶子,这就是挡不住k的原因*/vector<double>v1,v2; //分别为交点坐标int main(){ double x0,y0;//后面要和double相除...原创 2020-02-22 20:16:06 · 132 阅读 · 0 评论 -
2020寒假牛客第一场——H nozomi和字符串
自己思路:2种情况:把0换成1 或者 把1换成0难点:不知道起始位置大佬思路一,尺取法#include <iostream>#include <cstring>#include <cstdio>#include <algorithm> using namespace std; string s;int n, k; int...原创 2020-02-22 20:11:23 · 144 阅读 · 0 评论 -
2020寒假牛客第一场——G eli和字符串
我在做题时的难点:(1)某个字母不确定,无从下手大佬思路:牛客竞赛题解一,简单的队列模拟遍历字符串,每次:(1)把每个字符放进一个队列que[maxn]中,把每个字符j = int(str[i]) -‘a’ + 1 放进对应26个字母前缀和数组num[30]里。(2)直到某次str[i]这个字母在num[j]记录的个数达到k次,让字母从头开始出队(head++)直到指到了str[i...原创 2020-02-22 19:41:35 · 141 阅读 · 0 评论 -
2020寒假牛客第一场——A honoka和格点三角形
示例1思路:面积为1的三角形有两种情况:底2高1,底1高2x轴方向——m个格点,长度lenx = m-1y轴方向——n个格点,长度leny = n-1原创 2020-02-22 16:22:05 · 151 阅读 · 0 评论 -
2020牛客寒假第一场——E rin和快速迭代
链接:https://ac.nowcoder.com/acm/contest/3002/E来源:牛客网示例1输入12输出4说明12的因子:1,2,3,4,6,12。共6个。6的因子:1,2,3,6。共4个。4的因子:1,2,4。共3个。3的因子:1,3。共2个。12 → 6 → 4 → 3 → 2 , 故迭代了4次。思路:1,写一个函数,计算n的因子个数2,迭代 ...原创 2020-02-19 15:48:24 · 169 阅读 · 0 评论