mp

Codeforces 1201E2. Knightmare (hard)

不羁岁月 提交于 2019-11-30 14:34:16
传送门 看到棋盘先黑白染色冷静一下 然后分析发现,如果初始时两只马在同色的格子,那么一定是后手吃先手 反之一定是先手吃后手 所以分类讨论一下,如果初始在同色的格子,并且后手到达终点的步数更少,那么后手一定赢 并且如果后手威胁到先手终点时的步数比先手到终点的步数少,那么后手下一步直接到先手终点,此时先手为了不被吃最多只能跳到离终点三步的位置(这个自己画一下图就很容易理解了),然后后手再花三步跳到自己终点即可,先手一定是赶不上的 否则,后手就没法阻止先手了 (先手总是有路可以用最短步数到达终点,后手如果可以把先手的最短路径都封锁那么此时后手到达自己终点的步数一定比较小) 总之,画图分类讨论一波 如果是不在同色格子就按先手能否赢讨论即可,都差不多,只是因为先手的原因,步数相等时先手比较快 具体实现看代码吧,代码参考: rui-de $auto$ 大法好!(请使用 $C++14$ ) #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> using namespace std; typedef long long ll; const int N=2007,xx[8]={1,2,2,1,-1,-2,-2,-1},yy[8]={2,1,

map的常见用法

倾然丶 夕夏残阳落幕 提交于 2019-11-27 20:42:54
map的常见用法 map 是什么? map是一组键值对的组合,通俗理解类似一种特殊的数组,a[key]=val,只不过数组元素的下标是任意一种类型,而且数组的元素的值也是任意一种类型。有点类似python中的字典。通过"键"来取值,类似生活中的字典,已知索引,来查看对应的信息。(个人理解,其实不准确,内部并不是数组实现的,而是红黑树) map的定义 map<typename1,typename2> mp; 如果是字符串到其他类型的映射应该使用string map(string,int) mp; map的值也可以是stl容器 map(set<int>,string) mp; map容器内部的访问方式 通过下标来访问 # include <iostream> # include <map> using namespace std; int main(void) { map<char,int> mp; mp['c']=10; mp['c']=20;//10被覆盖 cout<<mp['c']<<endl; return 0; } 通过迭代器来访问 map的迭代器和其他集合的迭代器不同,其具有两种类型分别是typename1,typename2。 通过迭代器it要分别访问集合元素的键和值。 it->first访问键,it->second访问值 # include <iostream> #

「APIO2011」方格染色 加权并差集

一个人想着一个人 提交于 2019-11-27 12:13:39
「APIO2011」方格染色 正文: 对于一张图的状态,如果我们存这张图的每一个点。那么空间复杂度是 O ( n 2 ) O(n^2) O ( n 2 ) ,肯定不行,更不用说时间了。 不断的画图可以发现,如果我们知道了第一行,再知道第二行第一个,我们就可以推出第二行,之后如果知道第三行第一个,就可以推出第三行……也就是我们只要知道一张图的第一列和第一行,就可以知道整张图的状态。 然后我们考虑怎么把 m p [ i ] [ j ] mp[i][j] m p [ i ] [ j ] 的限制推到第一行和第一列上。 m p [ 1 ] [ 1 ] x o r m p [ 1 ] [ j ] x o r m p [ i ] [ 1 ] x o r m p [ i ] [ j ] = ( i m o d 2 = = 0 a n d j m o d 2 = = 0 ) mp[1][1]\ xor\ mp[1][j]\ xor\ mp[i][1]\ xor\ mp[i][j]=(i\ mod\ 2==0\ and\ j\ mod\ 2==0) m p [ 1 ] [ 1 ] x o r m p [ 1 ] [ j ] x o r m p [ i ] [ 1 ] x o r m p [ i ] [ j ] = ( i m o d 2 = = 0 a n d j m o d 2 = = 0 ) 解释

matplotlib之热成像图

为君一笑 提交于 2019-11-26 16:20:50
import numpy as np import matplotlib.pyplot as mp # 整理数据 n = 500 x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n)) # print(x) z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2) mp.figure('Imshow', facecolor='lightgray') mp.title('Imshow') mp.grid(linestyle=":") mp.imshow(z, cmap='jet', origin='low') mp.colorbar() mp.show() 来源: https://www.cnblogs.com/yuxiangyang/p/11326386.html

matplotlib之饼状图

大兔子大兔子 提交于 2019-11-26 16:08:44
import numpy as np import matplotlib.pylab as mp values = [26, 17, 21, 29, 11] spaces = [0.05, 0.01, 0.01, 0.01, 0.01] labels = ['Python', 'JavaScript', 'C++', 'Java', 'PHP'] colors = ['dodgerblue', 'orangered', 'limegreen', 'violet', 'gold'] mp.figure('Pie', facecolor='lightgray') mp.axis('equal') mp.pie( values, spaces, labels, colors, "%.2f%%", shadow=True, startangle=0, radius=1 ) mp.legend(loc=1) mp.show() 来源: https://www.cnblogs.com/yuxiangyang/p/11325762.html

YXLON 4512-105-40631

时光毁灭记忆、已成空白 提交于 2019-11-26 15:55:30
YXLON 4512-105-40631 CAMOZZI 50-8522-065602 506-108-S8-VS CAMOZZI 73-D472-D765 TBAP100A0765 BAUMER 10143981 FSE 200F6Y00 Schneider VDIB504201U SMW 备件 90741 CAMOZZI 10-5475-0502ZP 61M2P080RL0050 CAMOZZI 10-4875-200208 61M2P050A0200RS04 Schneider VW3AE0710 ROQUET齿轮泵1PLA54DE09B HAM-LET阀H300USSLNR1/4RS CAMOZZI 10-3322-0103 32M2A020A010 KAPSTO GPN 950 / 0157 MP Filtri FMP0652FAG2P01 CORPO FILTRO MEDIA PRESSIONE Schneider 9007C52DM11 供应现货原装进口意大利ODE电磁阀21A2ZB30G 供应原装进口意大利GIMATIC磁性开关SM3MR2-G SELET传感器OCV81K/D1PNCM SELET传感器B01E6,52NCC5 automationdirect THMJ-C12R-03 HAM-LET阀H6810SSN1/2ASSOC

[广度优先搜索]马的遍历

女生的网名这么多〃 提交于 2019-11-26 13:58:10
题目大意 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式 一行四个数据,棋盘的大小和马的坐标 输出格式 一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1) 输入输出样例 输入 #1 3 3 1 1 输出 #1 0 3 2 3 -1 1 2 1 4 思路 广搜+STL队列 使用结构体变量 Pos 存储坐标 使用二维数组 map[401][401] 存储地图(答案) 使用常量数组 dx[] dy[] 存储马可以走的8个方向 使用 Pos 类型队列维护坐标点的值 代码实现 #include<queue> #include<cstring> #include<cstdio> using namespace std; struct Pos //结构体变量Pos,存储马x、y坐标的值 { int x,y; }; queue <Pos> q; //定义一个Pos类型队列q int n,m,tx,ty,mp[401][401],x,y; const int dx[]={-1,-1,-2,-2,1,1,2,2}; const int dy[]={-2,2,-1,1,-2,2,-1,1}; //马的8个方向 void bfs(int sx,int sy) { q.push((Pos)