Kernel Knights (Gym - 101480K)】的更多相关文章

题目链接 #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(…
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…
2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage Bacteria Gym - 101911C 题意:像2048这个游戏,相同的两个可以合并在一起变成一个数(数值变成二倍),但是现在有一些数只有一个,所以需要添加一个和这些数相同的,让他们可以合并在一起,现在问最小添加多少个数可以把所有的数合成一个. 题解:我感觉类似于数据结构中的哈夫曼编码,最小编码,所以每次取最小的两个,如果这两个相等,就合…
题目链接:Central Europe Regional Contest 2015 Zagreb, November 13-15, 2015 D.Digit Division(排列组合+思维) 题解:如果这个数从划分的过程中第一.二道竖线前的能够整除m,那么第一道与第二道竖线之间的数也能够整除m. #include <bits/stdc++.h> using namespace std; typedef long long ll; char a[300005]; ll qpow(ll x,ll…
题目很水.睡过了迟到了一个小时,到达战场一看,俩队友AC五个了.. 就只贴我补的几个吧. B - Breaking Biscuits Gym - 101606B 旋转卡壳模板题.然后敲错了. 代码是另一种做法:对于每条边,枚举两边的所有点到直线的距离,分别取最大值,然后加起来. #include <bits/stdc++.h> #define FOPI freopen("in.txt", "r", stdin); #define FOPO freopen…
题目大概说一个n×m的格子中,'.'代表空地,'#'代表障碍,'K'代表骑士,'D'代表目的地.骑士每走一步花一条,每一步可以往(+2,+3)(-2,+3)...八个方向走,问占领所有目的地最少要几天. 二分枚举天数用最大流判定能否成立——建图关键在于把每一个格子点拆成天数个的点,因为每个格子每天只能容纳一个骑士所以各个天的点再拆成两个点之间连容量1的边,然后就是对所有第i天的点向所有第i+1天的点连容量1的边. #include<cstdio> #include<cstring>…
题意及思路 题目主要是讲先给出所有guard的位置,再给出所有incidents的位置,求出guard到达每个incident处最小的steps,其中guard每次可以向四周8个方向移动. 思路:对于每个guard使用bfs遍历它周围的点,算出相应的点到它的距离. AC代码 #include<bits/stdc++.h> using namespace std; int N, Q; struct Pla { int x, y; }; int dist[5000+10][5000+10]; in…
题目链接 题解:用二分查询一下每次满足长度的下一个加上它的长度. #include <bits/stdc++.h> using namespace std; typedef long long ll; ll a[500005]; ll b[500005] = {0}; int main() { ll n,i,j,k,p=1,l,r; char c; memset(a,0,sizeof(a)); while((c=getchar()) != '\n') { if(c == ' '){a[p]++…
未经许可谢绝以任何形式对本文内容进行转载! 本篇接着上一篇对kernel的分析. (5)pte_t * pgdir_walk(pde_t *pgdir, const void *va, int create) 这个函数是整个JOS操作系统页式内存管理最重要的函数.在这个函数中,JOS的设计者要求我们对于给定的一个页目录"pgdir",返回线性地址(这是虚拟地址)"va"对应的页表入口地址.先用MIT自己的一张图来解释下整个地址转换的过程: 在本函数中,返回值就是上图…
未经许可谢绝以任何形式对本文内容进行转载! 在文章开头不得不说的是,因为这部分的代码需要仔细理清的东西太多,所以导致这篇分析显得很啰嗦,还请谅解. 我们在上一篇文章已经分析了Boot Loader的功能,现在我们来分析由Boot Loader加载到内存里的kernel.从MAKEFILE文件可以看出kernel由以下几部分代码组成(注:这里给出的列表是进行lab2时的代码,即比lab1多了pmap.c等文件,由lab1更新到lab2需要用到Git,具体操作仅贴出参考链接:http://www.x…