摘要:
给定一个无向图,求联通块个数,以及k次每次摧毁一个点后的联通块个数 将边和摧毁的点全记录下来,反着做即可 注意被摧毁的点不能算作联通块 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #includ 阅读全文
摘要:
看了数据范围,想想这不暴力可以过?? DP #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> using namespace std; 阅读全文
摘要:
题目大意:要求把n个点分成m块,使得每一块之间的距离的最小值最大 n^2枚举所有点之间距离 然后sort一下 并查集维护连通关系 一开始e[]开MAXN然后WA了测了4ms,然后开MAXN<<2又WA不过测了24ms,再开MAXN<<5又WA测了68ms ,又开MAXN<<10 TLE了= =,最后 阅读全文
摘要:
二分答案 验证有一种贪心的思想,就是如果这条路的c1比二分的值还小,那就要果断选择一级公路。 搜过一遍后,如果可供选择的一级公路小于k,就可以直接返回否了。 接下来继续选择,如果可以选到n-1条路,就可以,否则就不可以。 选择道路时,选择的一定是不在一个集合里及不连通的,要用并查集优化。 #incl 阅读全文
摘要:
显然我们取的肯定是前ans块木板。然后砍的木材也应该是从小到大砍(如果小的木材可以满足条件,就一定不会去动大的木材) 所以两遍排序。 二分答案。 然后对于要取的每块木板,我们搜索它是在第x块木板上砍下来的。。 要加剪枝: ①如果砍下了这块木材然后这块木材小于第一块木板,那就失去价值,用t来记录。当t 阅读全文
摘要:
直接手动模拟 速度快啊。。 Language: C++ Result: Accepted Time:452 ms Memory:2836 kb Language: C++ Result: Accepted Time:452 ms Memory:2836 kb #include<algorithm> 阅读全文
摘要:
此题考察差分约束系统,用SPFA求最长路。 构图,边的权值只为0(等于 大于等于 小于等于)或1(大于 小于),dist数组存最长距离,即该小朋友的最少糖果数。 一次SPFA之后,直接输出dis数组总和,即为总糖果数。 注意事项: 1)由于等于是双向边,Node数组开两倍MAXN. 2)读入判断自环 阅读全文
摘要:
这是一道数学题。属于排列组合问题。 题目抽象一下就是有n个格子,用m种颜色染色,求有两个相邻的同色的情况有多少种。 其实反过来考虑更好算。 总的方案数为mn,减去每个相邻的都不同色的情况既可。 考虑每个相邻的都不同色,第一个格子可以用m中,后面的每一个格子都只能用m-1中,所以就是m(m-1)n-1 阅读全文
摘要:
递推+环状特殊处理+高精度 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> using namespace std; int n; 阅读全文
摘要:
最大流 数据有些鬼。。开小容易RE,开大就MLE。。 存双向边 然后直接跑dinic 注意读入有些复杂= = 速度还是跟得上的 最大流 数据有些鬼。。开小容易RE,开大就MLE。。 存双向边 然后直接跑dinic 注意读入有些复杂= = 速度还是跟得上的 Problem: 1001 User: YJ 阅读全文