题面 有一张n个点m条边的有向图,每条边有一个互不相同的边权w,有q个询问,要求你从点a经过不超过c条边到点b,要求经过的边权递增并和尽量小,求出最小的边权和,如果没有合法方案则输出-1. 对于100%的数据,n≤150,m≤5000,q≤1000,w≤5000. 100 为了去除递增的条件, 我们先给边按边权从大到小排序,然后逐一加入图中. 现在为了去除边数要求,发现最优路径经过的边最多为\(n\)条,那么我们开一个\(f_{i,j,k}\)表示: 从\(i\)到\(j\)至多走\(k\)条边…
题面 有一个长度为n 的排列,现在有一些位置的数已经模糊不清了,你只知道这个排列的逆序对个数是K,你能计算出总共有多少可能的排列吗? 对于100% 的数据,n <=10^3,K<=10^9,0 的个数不超过14. 100 折半搜索. 先用\(C_{14}^7\)把\(14\)个\(0\)分成两组,然后分别用\(7!\)来算出两组内部的贡献, 然后在用桶之类的统计两组相互之间的贡献.…
题面 在Byteland 一共有n 座城市,编号依次为1 到n,这些城市之间通过m 条单向公路连接. 对于两座不同的城市a 和b,如果a 能通过这些单向道路直接或间接到达b,且b 也能如此到达a,那么它们就会被认为是一对友好城市. Byteland 的交通系统十分特殊,第i 天只有编号在[li, ri] 的单向公路允许通行,请写一个程序,计算每天友好城市的对数. 注意:(a, b) 与(b, a) 没有区别. 70 Kosarajo算法 这是一个区别于tarjan算法的求强连通分量的算法. 流程…
Leetcode 931. Minimum falling path sum 最小下降路径和(动态规划) 题目描述 已知一个正方形二维数组A,我们想找到一条最小下降路径的和 所谓下降路径是指,从一行到下一行,只能选择间距不超过1的列(也就是说第一行的第一列,只能选择第二行的第一列和第二列:第二行的第二列,只能选择第三行的第一列第二列第三列),最小下降路径就是这个路径的和最小 测试样例 Input: [[1,2,3],[4,5,6],[7,8,9]] Output: 12 Explanation:…
A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_back using namespace std; typedef long long ll; typedef unsigned long long ull; const ll LLmaxn = 2e18; int main() { string a; cin >> a; , c=; ; i <…
第一题: 题目大意: 有mn颗糖,要装进k个盒子里,使得既可以平均分给n个人,也可以平均分给m个人. 求k的最小值. 解题过程: 1.先看一组小数据(13,21).那么根据贪心的原则很容易想到先拿13个盒子,每个盒子装13颗糖,这样当要分给13个人的时候,每个人还欠8颗糖,当要分给21个人的时候,还有8个人欠13颗糖.所以问题就变成了把8*13颗糖放到盒子里,要求既可以平均分给8个人,也可以平均分给13个人. 也就是说可以不断减小问题的规模: (13,21)->(8,13)->(5,8)-&g…
Time Limit: 1000ms      Memory Limit: 128MB Description 最小点覆盖是指在二分图中,用最小的点集覆盖所有的边.当然,一个二分图的最小点覆盖可能有很多种. 现在给定一个二分图,请你把图中的点分成三个集合: 如果在任何一种最小点覆盖中都不包含这个点,则认为该点属于N集合. 如果在任何一种最小点覆盖中都包含这个点,则认为该点属于A集合. 如果一个点既不属于N集合,又不属于A集合,则认为该点属于E集合. Input 第一行包含三个整数n, m, k,…
题面 在Byteland一共有n 个城市,编号依次为1 到n,它们之间计划修建m条双向道路,其中修建第i 条道路的费用为ci. Byteasar作为Byteland 公路建设项目的总工程师,他决定选定一个区间[l, r],仅使用编号在该区间内的道路.他希望选择一些道路去修建,使得连通块的个数尽量少,同时,他不喜欢修建多余的道路,因此每个连通块都可以看成一棵树的结构. 为了选出最佳的区间,Byteasar 会不断选择q 个区间,请写一个程序,帮助Byteasar 计算每个区间内修建公路的最小总费用…
平民比赛 这场比赛的暴力分非常友好. 但是我并没有拿到全部的暴力分. 1(暴力分\(60/100\)) 暂时我可以拿的暴力分为\(30/100\),直接mst模拟即可. 然而当时打了个辣鸡莫队,结果爆零. 膜隔壁ddddddpppppp,一眼切,我氪了一万年没氪出来,理应说第一题是本场比赛的套路题. 2(暴力分\(60/100\)) 我打了暴力,结果只拿了40分,已经很感动了. 结果这道题是可以打表的,就能拿60分. 3(暴力分\(60/100\)) 觉得打得比较好,暴力分全拿. 4(暴力分\(…
/* 爆搜,正解弃坑 */ #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<queue> #include<stack> using namespace std; ; int n,m,x1[maxn],y1[maxn],x2[m…