- 2024-11-12计蒜客:圣诞树(dijkstra,特殊的生成树)
基础原理:特殊的生成树给定一张无向图,其中边权都是正数,你需要求出总代价最小的生成树,生成树上每条边 (u,v)(u,v) 的代价为 w(u,v)∗count(v)w(u,v)∗count(v),其中 w(u,v)w(u,v) 为边 (u,v)(u,v) 的权值,count(v)count(v) 是 vv 所在子树的结点数总和。解法:虽然看起
- 2024-11-08计蒜客:骑车比赛(Dijkstra)
学习堆优化的写法1#include<bits/stdc++.h>2usingnamespacestd;3intn,m,a,b,c;4typedefpair<int,int>pii;//first表示距离,second表示节点号5vector<pii>graph[1005];6set<pii>minHeap;7vector<int>dis(1005,INT32_MAX);
- 2024-11-08计蒜客:网络延迟(DFS/BFS)
题目要求的是最远的两个节点的距离,即求树的直径(树中所有最短路径距离的最大值即为树的直径 求树的直径有两种做法,两次bfs(或者dfs),另一种是用树形DP本文用两次DFS实现#include<bits/stdc++.h>usingnamespacestd;intn,u,v;vector<int>graph[50005];vector<bool>vi
- 2024-11-04计蒜客:最短路简化版(BFS)
在queue中用结束标识来节约队列空间。也可以用vector来实现队列,用[left,right]控制队列。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m,c;4vector<int>graph[1005];5vector<bool>visited(1005,false);6vector<int>level(1005,0);7queu
- 2024-11-04计蒜客:互粉攻略(DFS/BFS)
因为有重复数据,所以不得不等输入完以后再进行有向图的遍历。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m;4set<int>graph[1005];5vector<bool>visited(1005,false);6vector<pair<int,int>>degree(1005,make_pair(0,0));//(入度,出度)
- 2024-10-30计蒜客:公告板(线段树)
难点在于要把模型抽象出来。第一眼看到题面,想到的是以公告板的高度作为线段树的区间,但看到h<=10^9以后,感觉又开不了这么大的数组。但实际上,最多只有n块公告,所以最极端的情况下不过只有n行,所以区间的真正大小是[1,min(n,h)]。解决了区间的问题,再来考虑每个节点要维护的信息。
- 2024-10-29计蒜客:最甜的苹果(线段树)
样例输入5612345Q15U36Q34Q45U29Q15样例输出5659 这题我们需要维护的信息,从区间的和变成了区间内的最大值。现在区间的内的某个值可能增大可能减小,若从上到下(从根到叶)进行节点更新,我们无法直接判断目前区间内的最大的节点。所以维护区间
- 2024-10-15计蒜客:斑点蛇(线段树)
样例输入 1012345678910Query13Add36Query27Sub102Add63Query310End 样例输出 63359采用标准模板即可。注意线段树的节点个数一般为其范围的4倍。1#include<bits/stdc++.h>2usingnamespacestd;3vector<int>s(5000
- 2023-04-03[计蒜客][字符串]字符串A的数量
算法标签字符串来源计蒜客2020蓝桥杯习题题目简介思路AC代码#include<iostream>#include<cstring>usingnamespacestd;intmain(){strings;cin>>s; intcnt=0;for(autoop:s)if(op=='A')cnt++;cout<<cnt;return0;}
- 2023-02-27计蒜客信息学2023年2月普及组模拟赛
T1:外卖你当然可以通过直接全排列枚举走的顺序通过本题,但那样太麻烦了其实本题可以分为以下三种情况:\(A\)点在最左侧,那么最短距离\(=\)最大值\(-\)最小值\(A\)点
- 2023-02-17计蒜客 - 天上的星星 (二维前缀和)
在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标
- 2023-01-15计蒜客掷标枪
题目链接:https://www.jisuanke.com/problem/T3778题目要求你根据公式依次算出每个人的掷标枪的距离然后计算得分,得分=离当前标枪落点最近后落点和前落点的标枪的距离之和
- 2023-01-06计蒜客 - T2144 拼数
计蒜客-T2144拼数题解:把所有数字看成字符串,但是难道直接降序排就结束了嘛,不是的,我们来看一个反例:31312虽然312>31但是明显31312>31231,所以我们不能简单的排序,我
- 2022-12-17计蒜客 剪刀石头布
题目:初始代码#include<stdio.h>intmain(){intN,NA[200],NB[200];intna,nb;intsuma=0,sumb=0;scanf("%d%d%d",&N,&na,&nb);for(inti=0;
- 2022-08-23计蒜客 | 矩阵蛇形输出
题目:给定一个m行、n*列的矩阵,请按照下图所示的顺序输出矩阵中所有的元素(从[0][0]位置开始,具体请参见下图)。注意每次碰到边界后,必须且只能沿着边界移动一格,不能后退