摘要:Floyd最小环模板 需要开两个矩阵 void floyd(){ ans=INF; for(int k=1;k<=n;k++){ for(int i=1;i<k;i++){ for(int j=i+1;j<k;j++){ ans=min(ans,dis[i][j]+arr[j][k]+arr[k][
阅读全文
11 2019 档案
摘要:Floyd最小环模板 需要开两个矩阵 void floyd(){ ans=INF; for(int k=1;k<=n;k++){ for(int i=1;i<k;i++){ for(int j=i+1;j<k;j++){ ans=min(ans,dis[i][j]+arr[j][k]+arr[k][
阅读全文
摘要:题目大意: n个点,m条边,两个数l和r,如果l和r相连接,那么对于l和r之间值任意一个数都要和l相连。问达到这一目的需要添加的边的最小数量。 题解: 我们首先要找到当前连通块中最大的那个点,也就是说所有小于当前点的点都要和这个点相连,如果不相连的话,加一条边,所以用我们可以用一个mark数组来标记
阅读全文
摘要:规律题 前缀和+规律 先求前缀和。。。答案为c[i]=arr[i]+c[i-m]//i>m时。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll N=2E5+7; ll arr[N]; ll c[N
阅读全文
摘要:被一个DIV2--b题目卡到哭; 总结:用到标记数组时,如果需要多次初始化,首先判断数据范围,如果特别大的话,不要用memset,,用map<int ,bool>做标记。 思路:以sum=0,做判断标准,跑数组的时候同时判断时候满足条件,不满足直接退出。 #include<bits/stdc++.h
阅读全文
摘要:A - Engines Atcoder 4900 题目大意:n个点,任意几个点组合后得到的点距离原点的最远距离。 题解:极角排序:https://blog.csdn.net/qq_39942341/article/details/79840394 利用极角排序,将这些点看成与原点相作用的向量,然后根
阅读全文
摘要:题目连接: https://codeforces.com/contest/1257/problem/D 题目大意: n个怪兽,m个英雄,每个怪兽有一定的能力值,每个英雄有一定的能力值和一定的耐力值。耐力值得含义是每天可以击杀怪兽的最多数目。当英雄的能力值大于怪兽的能力值时,英雄可以击杀怪兽,然后问击
阅读全文
摘要:题目大意:n个点,任意几个点组合后得到的点距离原点的最远距离。 题解:极角排序:https://blog.csdn.net/qq_39942341/article/details/79840394 利用极角排序,将这些点看成与原点相作用的向量,然后根据平行四边行法则,两向量之间的角度相差越小,其复合
阅读全文
摘要:水题,煞笔题,垃圾题 题意弄错了。一开始以为是对于数组a,首先哦按判断出现最多的次数的元素是否唯一,不唯一的话直接输出-1,唯一的话在保存位置相邻相减找到最小。。。 题目大意:a的一个子区间满足出现的次数最多的元素为1即可。 保存位置,直接暴力求相同元素相邻位置区间长度找到最小值即可。 #inclu
阅读全文
摘要:链接: http://codeforces.com/contest/1243/problem/B2 题目大意: 两个字符串,判断能否通过交换为从而使得这两个字符串完全一致,如不可以的话,直接输出NO,可以的话输出YES,并且输出每一步的交换位置。 思路:如果没个字符出现的次数为偶数次的话,那么一定可
阅读全文
摘要:题目链接: http://codeforces.com/problemset/problem/1196/F 题目大意::无向图,求任意两点第k短的路径 思路:按照边的大小,只保留前K个边,如果不连同的话, 第K小的边一定是这K个边中的一个,连同的话,一定是这K个边之间的复合边。重新编号,然后跑flo
阅读全文
摘要:树的重心的定义: 在一棵树中,找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 通俗来说就是以这个点为根节点,找到他最大的衣蛾子树,然后让这个子树最小。 例题加模板: POJ 1655 #include<iostream> #inclu
阅读全文
摘要:最长公共前后缀 在拼接字符串的时候要注意要考虑主串与子串的大小,其中子串在前主串在后,如果说子串的长度为X1,主串的长度为X2 ,加入x1<x2 那么将子串与主串的后x1位连接,否则将子串的前X2为与主串的连接 然后求前缀数组。 AC代码 //最长公共前后缀 #include<bits/stdc++
阅读全文
摘要:A题: 题意: 给你两棵树,然后用一条边将这两棵树连接起来,然后计算 每两点之间的距离,然后求和,问这个和的最小值。 思路:根据重心的性质,树上的所有点到重心的距离最短,因此我们找到两棵树的重心,然后将其连起来。两点之间距离与其边的条数有关,因此我们只需要计算每一条边用过的次数就行了,即该上方的点乘
阅读全文
摘要:题目连接:https://atcoder.jp/contests/agc040/tasks/agc040_b 大佬题解:https://blog.csdn.net/duanghaha/article/details/102892233 题意:有N个问题,每个问题可以由编号L~R之间的人完成,有两个集
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6319 题解:https://blog.csdn.net/Sirius_han/article/details/81318266 思路:倒着维护一个单调数组,数组内元素的个数就是count值,尾部就是ma
阅读全文
|