[BZOJ 4436][Cerc2015]Kernel Knights】的更多相关文章

[Cerc2015]Kernel Knights Time Limit: 2 Sec Memory Limit: 512 MBSubmit: 5 Solved: 4[Submit][Status][Discuss]Description “Jousting”是一种让骑士在高速骑行中用木制长矛相互攻击对方的中世纪竞技游戏.现在,一共有2n个骑士进入一场“Jousting”锦标赛.骑士们被平均分配到2个house.竞赛开始时,所有骑士都会对另一个house的骑士之一发起挑战.一组解被定义为一个集合S…
Kernel Knights 题目链接: http://acm.hust.edu.cn/vjudge/contest/127407#problem/K Description Jousting is a medieval contest that involves people on horseback trying to strike each other with wooden lances while riding at high speed. A total of 2n knights…
题 题意 有两个队的骑士1到n和n+1到2n,每个骑士只能互相攻击对手队的一个骑士.kernel的意思是在这个kernel里的骑士不会互相攻击,在kernel外的骑士被kernel里的骑士攻击. 现在告诉你所有骑士攻击的骑士,求一个kernel. 分析 没人攻击的骑士一定在kernel里,把没人攻击的加入队列,然后被他攻击的骑士一定在kernel外. kernel外的骑士的攻击无效,因为如果一个骑士如果只被外面的骑士攻击,他就是kernel里的. 于是 被 外面的骑士攻击 的骑士 的被攻击次数…
4421: [Cerc2015] Digit Division Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 348  Solved: 202[Submit][Status][Discuss] Description 给出一个数字串,现将其分成一个或多个子串,要求分出来的每个子串能Mod M等于0. 将方案数(mod 10^9+7)   Input 给出N,M,其中1<=N<=300 000,1<=M<=1000 000. 接下来一行…
4451: [Cerc2015]Frightful Formula Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 177  Solved: 57[Submit][Status][Discuss] Description 给你一个n*n矩阵的第一行和第一列,其余的数通过如下公式推出:  F[i,j]=a*f[i,j-1]+b*f[i-1,j]+c  求f[n][n]%(10^6+3)  Input 第一行三个数n,a,b,c  第二行n个数,第i个表…
4421: [Cerc2015] Digit Division 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4421 Description 给出一个数字串,现将其分成一个或多个子串,要求分出来的每个子串能Mod M等于0. 将方案数(mod 10^9+7) Input 给出N,M,其中1<=N<=300 000,1<=M<=1000 000. 接下来一行,一个数字串,长度为N. Output 如题 Sample In…
题目: https://www.lydsy.com/JudgeOnline/problem.php?id=1671 题解: 按题意分别从贝茜和骑士bfs然后meet_in_middle.. 把一个逗号打成分号调了20分钟... 代码: #include<bits/stdc++.h> using namespace std; ]={,-,,,},my[]={,,,-,}; ; int n,m,g[maxn][maxn],vis[maxn][maxn],f[maxn][maxn],sum,cnt,…
分治最小割的题目,要求n2. 之前用的n3的方法自然不能用了. 于是用hash,设hash[i][j]表示在最小割为i的时候,j是否与S联通. 看懂这个需要理解一下最小割树的构造. 这种题建议用EK写,因为EK在流量保证很小的时候实际是非常快的. 另外,这题卡常. #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #in…
bfs预处理出每个点s和t的距离d1和d2(无法到达标为inf),然后在若干灌木丛格子(x,y)里取min(d1[x][y]+d2[x][y]) /* 0:贝茜可以通过的空地 1:由于各种原因而不可通行的区域 2:贝茜现在所在的位置 3:骑士们的位置 4:长着贝茜需要的灌木的土地 */ #include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace s…
题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; int a[200005]; //存放原始数据 int vis[200005]; //标记选的对手 int b[200005]; //答案序列 queue<int>q; //把所有能够选的都存一次,接着遍历与它有关系的. int main() { int n,x; scanf("%d",&n); memset(…