当前位置: 首页 > news >正文

汕头市网站建设_网站建设公司_AJAX_seo优化

受欢迎的免费建站,找人注册公司需要多少钱,营销型网站九大特点,北京网站建设龙鹏P1896 [SCOI2005]互不侵犯 题目#xff1a; 在NN的棋盘里面放K个国王#xff0c;使他们互不攻击#xff0c;共有多少种摆放方案。国王能攻击到它上下左右#xff0c;以及左上左下右上右下八个方向上附近的各一个格子#xff0c;共8个格子。 题解#xff1a; 需要知道…P1896 [SCOI2005]互不侵犯 题目 在N×N的棋盘里面放K个国王使他们互不攻击共有多少种摆放方案。国王能攻击到它上下左右以及左上左下右上右下八个方向上附近的各一个格子共8个格子。 题解 需要知道前一行的情况所以一行一行的放车 记录每行的情况 在本题中不能存在相邻的1 对于一行x (x(x1))0-----可以判断左右是否有相邻的1 对于上一行x下一行y (xy 0 (x(y1)) 0 (x(y1)) 0 上下左下右下都不为0 dp[i][j][k]表示第i行状态为k已经放了j个车 转移方程 dp[i][j][k]dp[i-1][j-num[k]][p] (kp) 0 (x(p1)) 0 (x(p1)) 0 num[k]表示k状态的国王数 代码中的init是预处理部分提前求出每一行棋子可摆放的方案情况方便后面直接使用 代码 #includeiostream #includecstdio using namespace std; int n,k; long long dp[10][15000][80]; //dp[i][j][k]表示第i行状态为j前面摆了k个国王时方案数 long long state[777777] , king[77777] ;//state[]是当前状态king[]是当前行的国王数 long long ans , sum;//ans是用来记录状态总数的sum是用来计算一共有多少种方案的inline void init() {int tot (1n) - 1;//最多到这个时候就是二进制下每一位上都放上国王当然有不行的为了方便下文排除 for(int i 0 ; i tot ; i)if(!((i1)i)) //因为要互不侵犯所以两个国王之间必须隔一个这是判断是否满足题意国王之间不相互攻击 {state[ans] i; //找到了满足的记录这个状态 int t i;while(t) //判断这个状态有多少个国王也就是t在二进制下有多少个1 {king[ans] t1;t1; //记住是右移一位和 t/2 一样就是稍微快一点 }}} int main() {cinnk; //数据 init(); //初始化 for(int i 1; i ans ; i) //先处理第一行 if(king[i] k) //一行的国王数一定不能超过总数 dp[1][i][king[i]] 1;for(int i 2 ; i n ; i) //处理剩下的所以从 2 开始枚举 for(int j 1; j ans ; j) //枚举状态 for(int p 1; p ans ; p) //再一遍状态用来当作上一行的状态因为 我们由上向下递推能迎上本行的只有上一行 { //这里就不在赘述了和处理第一行同理但是不同的是这里处理相邻的行if(state[j] state[p]) continue; //所以上下相邻不行if(state[j] (state[p]1)) continue; //本行的右上角不能有国王 if((state[j]1) state[p]) continue; //左上角也不行 for(int s 1 ; s k ; s){ //s表示本行以上用了多少国王 //满足条件后还要记得国王数量是有限的if(king[j] s k) continue; //我们是递推所以本行以上一定处理完了所以本行加以前用过的国王总数不能超过限定dp[i][j][king[j]s] dp[i-1][p][s]; //还记得dp[i][j][k]中的k表示已经用过的国王数而king[]是本行的s是本行以前的 }}for(int i 1; i n ; i) //因为不确定在哪一行用光国王所以都枚举一遍 for(int j 1 ; j ans ; j) sum dp[i][j][k]; //本行及以前用光了国王那么方案数加在总数中 coutsum;return 0; }
http://www.ihoyoo.com/news/22246.html

相关文章:

  • 单页 网站 模板广商网
  • 良品铺子网站制作长沙专业网站建设公司排名
  • 海阳做网站网站三大要素是什么意思
  • 苏州集团网站设计定制代驾小程序定制开发
  • 网站重定向怎么做阿里云网站备案查询
  • wap网站价格wordpress 搜索 字母
  • 如何查询网站所有人汕头网站优化
  • 织梦做视频网站可以吗鞍山网站建设工作室
  • 普通建站高端网站建设必须要满足哪些要求
  • 郑州网站推广哪家好大连搜索排名提升
  • 北京营销型网站制作潍坊市建设信息网
  • 郫都区规划建设局网站广东中山今天最新通知
  • 青岛城乡建设局网站网络运维面试
  • 金花站长工具城乡建设环保部网站
  • 找不同 网站开发免费网站建站
  • 做枪版电影网站赚钱网站设计需要什么证
  • 建设通网站源码邢台网站推广专业服务
  • 网站设计的公司logo泰安市建设局网站
  • 哪里有免费的域名注册建网站网页设计学习心得
  • 怎么开发销售网站查询网站备案密码是什么情况
  • 行业网站建设哪家专业郑州网站运营实力乐云seo
  • 企业如何对自己的网站进行建设设计本app下载
  • 企业网站wap源码自助建站的平台
  • 四川住房和城乡建设九大员网站p2p网站做牛
  • 网站搭建哪家公司最好wordpress主题破解2019
  • 大型门户网站设计公司怎么做自建站
  • 主机开通成功网站建设中代理什么产品最赚钱
  • 江苏省建设厅网站首页网站开发人员应具备什么素质
  • 可以做软件外包项目的网站微盟集团官网
  • 河海大学土木专业类建设网站柯桥区建设局网站