Luogu P1692 部落卫队】的更多相关文章

解题思路 数据范围不是很大,那应该不是那些普遍的图论的算法.考虑搜索,用暴力解决.从1到N枚举每一个点的位置,搜索这个点事选还是不选.如果在这个点之前选到的点中又和他冲突的点,那就不选,要么就选. 附上代码 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ], Ans[], ans[], res; ][], mark; inline void DFS(int x,…
P1692 部落卫队 题目描述 原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突.几乎每个居民都有他的仇敌.部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌. 给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案. 输入输出格式 输入格式: 第1行有2个正整数n和m,表示byteland部落中有n个居民,居民间有m个仇敌关系.居民编号为1,2,…,n.接下来的m行中,每行有2个正整数u和v,表示居…
题目描述 原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突.几乎每个居民都有他的仇敌.部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌. 给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案. 输入输出格式 输入格式: 第1行有2个正整数n和m,表示byteland部落中有n个居民,居民间有m个仇敌关系.居民编号为1,2,…,n.接下来的m行中,每行有2个正整数u和v,表示居民u与居民v是仇敌.…
首先介绍下最大团问题: 问题描述:给一个无向图G=(V,E) ,V是顶点集合,E是边集合.然后在这顶点集合中选取几个顶点,这几 个顶点任意两个之间都有边在E中.求最多可以选取的顶点个数.这几个顶点就构成一个最大团. 注:最大团可能不唯一. 问题求解思想:这个问题的本质是一个子集选取问题,就是有集合包括n个元素{1,2,-,n}选取其中一个子 集,这个子集满足某种性质(对于最大团问题,就是任意两个顶点之间有边),求这个子集的最大元素数. 每个元素(对应顶点编号)有2种选择,加入或不加入.所以子集个…
啊这道题其实暴力就行了,算是一道搜索入门题吧. 搜索变量就应该是当前到哪一位了,然后进行枚举,当前的一位加或者不加,然后知道搜完为止. 判断当前一位可不可以加的时候本来想用vector的,但是没调出来qwq(菜),然后学的第一篇题解惹 上代码: #include <bits/stdc++.h> using namespace std; int n , m , ans; int anses[110] , now[110] , vis[110] , dis[110][110]; void dfs(…
二分距离判断是否满足k个部落,注意double类型精度,可使用不开方,最终再开 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) #define dec(i,x,y) for(register int i=x;i>=y;i--) #define eps 1e-4 using namespace std; ; inline int read(){ ,f=;char ch=getchar(…
题目连接:https://www.luogu.org/problemnew/show/P3950 1.像我这种学数据结构学傻了的 2.边权化点权 所有点权初始化0 3.对于战争 将深度较深的-1,对于和平 将深度较深的+1 4.对于历史 用war记录 5.特别注意 在两个查询的LCA处判断是否为-1并且当前的整条路径上的点权也为-1时 同样是yes 代码: include include include include define lson left, mid, rt<<1 define r…
原题传送门 这题用Link-Cut-Tree解决,Link-Cut-Tree详解 我们用Link-Cut-Tree维护连通性(十分无脑) 一开始先把树中每条边的两端连接 U操作:把u,v两个点连起来 C操作:把u,v两个点分开来 Q操作:判断在这个森林里u的根和v的根是否相等(是否连通) #include <bits/stdc++.h> #define N 300005 #define getchar nc using namespace std; inline char nc(){ stat…
嘟嘟嘟 树剖板子题. #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<cstdlib> #include<cctype> #include<stack> #include<queue> #include<vector> using name…
题目链接 luogu P3950 部落冲突 题解 树剖线段树可以 lct还行 代码 #include<cstdio> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9' && c >= '0') x = x * 10 + c - '0…