Educational Codeforces Round 52D(ARRAY,模拟最短路)
#include<bits/stdc++.h>
using namespace std;
int n,x;
int chess[17*17];//记录棋盘上的number
array<int,2>pace[17*17*3][17*17*3],dp[17*17][3];//first记录root,second记录change
array<int,2>operator+(const array<int,2>a,const array<int,2> b){
return {a[0]+b[0],a[1]+b[1]};
}
int main(){
memset(pace,1,sizeof(pace));//最大为1
memset(dp,1,sizeof(dp));//最大为1
scanf("%d",&n);
for(int i=0;i<n*n;i++){
scanf("%d",&x);
x--;
chess[x]=i;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<3;k++){
for(int l=0;l<3;l++){
pace[(i*n+j)*3+k][(i*n+j)*3+l]={1,1};//i*n后+j可以表示棋盘上n*n的所有位置,*3后可以用一维表示位置和用哪一种棋子走到这里的,不*3多开一维也可以
}
}
for(int k=0;k<n;k++){
for(int l=0;l<n;l++){
if(i==k||j==l)//车一步可以走到
pace[(i*n+j)*3][(k*n+l)*3]={1,0};
else if(abs(i-k)+abs(j-l)==3)//骑士一步可以走到
pace[(i*n+j)*3+2][(k*n+l)*3+2]={1,0};//+1用来区分是谁走的
if(i+j==k+l||i-j==k-l)//皇后一步可以走到
pace[(i*n+j)*3+1][(k*n+l)*3+1]={1,0};//+2用于区分
}
}
}
}
for(int k=0;k<n*n*3;k++){
for(int i=0;i<n*n*3;i++){
for(int j=0;j<n*n*3;j++){
pace[i][j]=min(pace[i][k]+pace[k][j],pace[i][j]);//最短路
}
}
}
dp[0][0]=dp[0][1]=dp[0][2]={};
for(int i=1;i<n*n;i++){
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
dp[i][j]=min(dp[i-1][k]+pace[chess[i-1]*3+k][chess[i]*3+j],dp[i][j]);
}
}
}
array<int,2>a=min({dp[n*n-1][0],dp[n*n-1][1],dp[n*n-1][2]});//分别为初始的三种棋子,首先比较第一个元素选取最小,依次比较后续元素选取最小
printf("%d %d",a[0],a[1]);
return 0;
}
Educational Codeforces Round 52D(ARRAY,模拟最短路)的更多相关文章
- [Educational Codeforces Round 63 ] D. Beautiful Array (思维+DP)
Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array time limit per test 2 seconds ...
- Educational Codeforces Round 117 (Rated for Div. 2)
Educational Codeforces Round 117 (Rated for Div. 2) A. Distance https://codeforces.com/contest/1612/ ...
- Educational Codeforces Round 32
http://codeforces.com/contest/888 A Local Extrema[水] [题意]:计算极值点个数 [分析]:除了第一个最后一个外,遇到极值点ans++,包括极大和极小 ...
- Educational Codeforces Round 37
Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Educational Codeforces Round 63 (Rated for Div. 2) 题解
Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...
- Educational Codeforces Round 58 (Rated for Div. 2) 题解
Educational Codeforces Round 58 (Rated for Div. 2) 题目总链接:https://codeforces.com/contest/1101 A. Min ...
- Educational Codeforces Round 35 A. Nearest Minimums【预处理】
[题目链接]: Educational Codeforces Round 35 (Rated for Div. 2) A. Nearest Minimums time limit per test 2 ...
- Educational Codeforces Round 26
Educational Codeforces Round 26 困到不行的场,等着中午显示器到了就可以美滋滋了 A. Text Volume time limit per test 1 second ...
随机推荐
- php设计模式课程---1、什么是设计模式
php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ...
- python3 字典属性
1.字典创建 >>> D={} >>> D {} >>> D2={:,(,):::'d'}} #冒号构造 1.使用 { }和 : 直接创建 &g ...
- 关于phonegap的cookie
angular搞了一半现在开始搞phonegap(确切的说应该叫cordova). 因为有很紧迫的需求,所以我也不能系统的学,只能遇到啥问题就解决啥.第一个问题就是cookie. 经过调研,cordo ...
- 纯css实现3D字体
下面分别是html,css和js代码: <div class="wrapper"> <h1 contenteditable data-heading=" ...
- http接口测试框架-构想图
写这篇,是当初如何学习,如何写,如何实现,总体的流程
- Java_异常_02_java.lang.NoClassDefFoundError: org/apache/log4j/Level
总结:解析Json时,除了要导入json-lib-2.2-jdk15.jar外,还要导入: commons-beanutils.jar, commons-httpclient.jar, commons ...
- BEC listen and translation exercise 35
高中听力: At five o'clock, we have afternoon tea, but we don't have it in the kitchen. Father's Day is t ...
- nodejs cluster 学习记录
最近在使用 egg.js ,这个框架提供多进程管理机制 我们知道 JavaScript 代码是运行在单线程上的,换句话说一个 Node.js 进程只能运行在一个 CPU 上.如何榨干服务器资源,利用上 ...
- 5_Singleton 游戏开发中的单例模式
强制类只有一个实例 提供全局的访问 ###为什么使用: ``` 如果没有地方访问这个类,则不会创建实例 静态类在main之前实例化, 可以尝试Lazy initialization 派生单例类, 获得 ...
- 使用 nginx 和 rtmp 插件搭建视频直播和点播服务器
使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP serv ...