CodeForces - 1105D 多源搜索】的更多相关文章

#include<bits/stdc++.h> using namespace std; typedef long long ll; struct node{ int x,y; ll setp; }; queue<node> Q,border[]; ; char a[maxn][maxn]; int vis[maxn][maxn]; int n,m,p; ll ans[],s[]; ][]={ {,},{,},{,-},{-,} }; void bfs(int w) { node…
题目: 给出一张游戏地图和每个玩家的位置,每次能移动的步数.p个玩家轮流移动占领地图中的格子(当格子已经被占领时就不能在占领了)在每个玩家都不能移动时游戏结束. 问在游戏结束后,每个玩家占领的格子的数目. 思路: 当时做的时候,并没有思路,借鉴了大佬的……Orz 对每一个玩家分配一个队列,这个队列中只保存移动时最后一步的位置.如果在一个循环中p个玩家都没有能够成功移动的,就说明游戏结束了. 然后遍历一下地图,统计一下每个玩家占领的格子就ok了. 代码: #include <bits/stdc++…
In one of the games Arkady is fond of the game process happens on a rectangular field. In the game process Arkady can buy extensions for his field, each extension enlarges one of the field sizes in a particular number of times. Formally, there are n…
Palindromic characteristics of string s with length |s| is a sequence of |s| integers, where k-th number is the total number of non-empty substrings of s which are k-palindromes. A string is 1-palindrome if and only if it reads the same backward as f…
C. NP-Hard Problem time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard output Recently, Pari and Arya did some research about NP-Hard problems and they found the minimum vertex cover problem very int…
<题目链接> 题目大意: 每个玩家控制一个颜色去扩张,每个颜色的扩张有自己的速度,一个颜色跑完再跑下一种颜色.在所有颜色不能在继续扩张的时候停止游戏.询问此时各种颜色的数量. 解题分析: 就是用BFS去模拟颜色的扩张,但是需要注意的是,本题需要加一些小的优化,比如,每次只用扩张上一轮BFS新更新的点就行. #include <bits/stdc++.h> using namespace std; #define N int(1e3+7) #define rep(i,s,t) for…
要点 题意:可以拐弯,即哈密顿距离 注意不可以直接一个一个搜,这过程中会把下一轮的标记上,导致同一轮的其它点没能正常完成应有的搜索 因此采用双层广搜,把同一轮先都出队列再的一起搜 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <cct…
F. Xor-Paths time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output There is a rectangular grid of size n×mn×m. Each cell has a number written on it; the number on the cell (i,ji,j) is ai,jai,j.…
题面 传送门 分析 考虑BFS while(棋盘没有满){ for 玩家 p{ 对p进行BFS,走s[p]步 } } 对于每个玩家p BFS的时候如果到了格子(x,y),就把\(vis[x][y]\)标记为p 最后把vis扫一遍就统计出了每个玩家占领的个数 每次BFS时要把最外层的节点存下来,下一次BFS时直接从那些节点开始搜索 具体实现中对每个玩家维护两个队列q1,q2,队列中的每个元素(x,y,t)表示当前时间为t,位置(x,y) 初始化时向q2插入起点 function expand(p)…
E - Petya and Exam CodeForces - 832B 这个题目其实可以不用字典树写,但是因为之前写过poj的一个题目,意思和这个差不多,所以就用字典树写了一遍. 代码还是很好理解的,主要就是哪个findx函数,这个要好好理解. 如果碰到*或着?就要重新标记一下,其他都是一样的,对于?可以跳过好字母,对于*可以跳过若干个不好的字母, 这个就在直接跳过之前加一个判断条件就可以了. 贴一下代码 #include<iostream> #include<cstdio> #…