做不出来主要是老想着用2^30存每个点的状态,用0 1表示连边奇偶,,就被限制住了

实际上我们应该注意到k=8,这样我们就只用记录前k个、、

其实就是递推的思路,每次加入一个新点,枚举这个点与前K个点各种情况的连边,再考虑连与不连有什么影响

再就是不同点的转移要注意保持合法性

注意状态记录从右往左,这是因为>>正好可以削掉一个边界

只要能把所有情况都考虑进来,完成每一个点加入前所有其他点的状态的完整, 就是成功的dp

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define p 1000000007
int n,m,K,k,f[35][35][(1<<9)][10];
int main()
{scanf("%d%d%d",&n,&m,&K);f[2][0][0][0]=1;for(int i=2;i<=n;i++)for(int j=0;j<=m;j++)for(int k=0;k<(1<<(K+1));k++){for(int l=0;l<K;l++){if(f[i][j][k][l]){f[i][j][k][l+1]+=f[i][j][k][l];f[i][j][k][l+1]%=p;              //放过这次连边机会,给下一个连边 if(j<m&&i-K+l>0){f[i][j+1][k^(1<<K)^(1<<l)][l]+=f[i][j][k][l];f[i][j+1][k^(1<<K)^(1<<l)][l]%=p;     //连边之后的影响 }   }}if((k&1)==0&&f[i][j][k][K])f[i+1][j][k>>1][0]=f[i][j][k][K];
//因为K个以前的再也没有机会合法,所以必须K个前满足才能转给下一个 }printf("%d",f[n+1][m][0][0]);
}

做题一定不要钻一个几乎不可能的点,要考虑从其他角度切入(尤其是dp的状态设计)

还有就是不要看到题目奇怪就觉得不会了,这时应该尽量把题目压缩,然后针对题目奇怪的地方找角度切入(如对8用状压、)

2017.7.26 奇怪的道路 失败总结相关推荐

  1. 2017.9.26 于神之怒加强版 失败总结

    .这个题直接上反演可以化成: 然后后面的部分是可以预处理的,最简单的预处理是nlogn的,理论能过,但不知为何死活过不了. 所以就需要o(n)来求后面函数的值 设f=∑d|t  mu(d)*(T/d) ...

  2. matlab 模拟交易,股票量化投资策略模拟交易系统 [2017.03.26 更新]

    本帖最后由 heawjc 于 2017-3-27 17:13 编辑 本系统允许自主研发量化投资策略并进行模拟交易,从2000多只A股中自动选取并交易:策略研发完成即可对历史行情数据进行模拟调试,验证其 ...

  3. Visual Studio 2017启动x86的Android模拟器失败

     Visual Studio 2017启动x86的Android模拟器失败 Visual Studio 2017默认提供多个Android模拟器.其中,x86模拟器运行较快.但是由于和Hyper-V服 ...

  4. 2017.9.26 货币兑换 失败总结

    这个题首先要注意到提示:全买全卖,,不然很容易误入歧途 然后可以根据确定性n^2 dp,,由于它是全买全卖,所以枚举上一个买入的点在哪里,算全卖出的价值取max 如果这个点不卖,则它一定有钱,所以继承 ...

  5. 2017.7.26 幻想乡战略游戏 失败总结

    因为时间关系,就先强行明白了 dt点分治是接触过最难懂的东西了(可能是这一个题) 就是建立一颗点分树 注意子树向重心连边,修改时直接往上跳,用过点和不过点可以简单容斥 就知道这些了 码: #inclu ...

  6. 看完2017年这10大AI失败案例,就知道什么是人工智障了

    本文授权转自网路冷眼(微信公众号:gh_37ca35f41890) 现在尽管我们大多人自然是机器智能的粉丝,但是我们也必须意识到一些新技术正在努力地有效地执行他们的任务,经常以人类不会犯错的方式出错. ...

  7. bzoj 3195 奇怪的道路

    Written with StackEdit. Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有\(n\ ...

  8. Visual Studio 2017 、2019安装Windows SDK失败的解决办法(改盘符引起)

    如果是改盘符出错就请往下看,如果不是就别往下看了 这是血泪踩出来的坑,希望有所帮助.我是手残把电脑盘符改了,然后vs就开始疯狂报错,百试无果.百度不出,果断放弃,刚开始是安装的2017,卸载完后安装的 ...

  9. 状压[Jxoi2012]奇怪的道路

    小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有n座城市,编号为1-n.m条道路连接在这些城市之间,每条道路将两个城市连接起来, ...

最新文章

  1. [精选]MySQL的各种锁(表锁,行锁,悲观锁,乐观锁,间隙锁,死锁)
  2. 软件架构设计 温昱著 - 读书笔记
  3. java crud_Java 8流中的数据库CRUD操作
  4. webpack来打包你的vue项目,如发现你的vendor.js过大
  5. some any oracle,Oracle之 any、some、all 解析
  6. 华为云摘得信息检索领域国际权威比赛金牌,实力全解析
  7. 用FoxitPDFReader打开消除PDF中文乱码
  8. 用python解决搬砖问题_如何像要饭一般”用“python (一)(非编程类工作/科研搬砖工)...
  9. 【解决Windows】修改win10默认开机启动动画
  10. 供应链金融系统-强大的供应链风控体系为金融平台保驾护航
  11. vue3中的vue-router简单实现以及router变迁带来的思考
  12. web网页常见特效3——轮播图
  13. 生产环境使用 pt-table-checksum 检查MySQL数据一致性【转】
  14. vscode自定义消息配置
  15. 实验7-3-5 输出大写英文字母(15 分)
  16. 不懂英语怎么做亚马逊_亚马逊的回声秀可以做的一切其他回声都做不到
  17. 链路追踪之Jaeger安装与使用
  18. 考研数据结构树——读书摘抄总结
  19. opencv 安装 opencv_contrib 出现的几个问题和解决方法
  20. 删除win7右键菜单intel的图形属性和图形选项

热门文章

  1. Android 扫描SD卡中的所有视频文件
  2. Android笔记 杀死进程demo
  3. 高等组合学笔记(十五):容斥原理,错排问题
  4. (组合数学笔记)Pólya计数理论_Part.9_Pólya定理的推广——De Bruijn定理
  5. linux 网络命令 dns,[LN_03] Linux网络环境查看(网卡|路由|DNS|IP)、网络测试命令(端口探测|路由跟踪|抓包|ssh连接)...
  6. linux挂载硬盘_Linux中如何对硬盘进行分区、格式化、挂载使用
  7. java swing 实现下拉列表点击事件
  8. 单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
  9. android 自定义域名,Android基于Retrofit2改造的可设置多域名的网络加载框架
  10. java 创建线程_java多线程|创建线程的各种方式