2015-10-06 19:31:05


n个有标号的球围成一个圈。每个球有两种颜色可以选择黑或白染色。问有多少种方案使得没有出现连续白球7个或连续黑球7个。

每组包含n,表示球的个数。(1 <= n <= 100000)

dp[i][0][x] 表示在第i为填黑色且加上第i位连续的前面有x个黑色的球,dp[i][1][x]表示在第i为填白色且加上第i位连续的前面有x个白色的球

我们只算第一个球为白色,那么最后计算出的个数会等于第一个球去黑色的个数,这个很好理解,只要把他们的颜色相对应的反转一下就好了。然后剩下的好了,

最后的答案 是 dp[n][0-1][1-6] 再减去一些首位连接会超过7个的方案就好了,枚举前几位分别放什么相同的颜色,然后后面减去就好了

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string.h>
using namespace std;
const int maxn=;
const int mod=;
int dp[maxn][][];
int solve(int n){
int ans=;
for(int i=;i<(<<n); i++)
{
int hei=,bai=;
int bo=;
for(int j=; j<n; j++){
hei=;bai=;
for(int k=; k<;k++)
if( ( <<((j+k)%n) ) & i )bai++;
else hei++;
if(hei>=||bai>=){
bo=;break;
}
}
if(bo)ans++;
}
return ans%mod;
}
int solve2(int n)
{
int ans=;
for(int i=; i>=; i--)
{
ans=(ans+dp[n][][i]+dp[n][][i])%mod;
}
ans=(ans*)%mod;
for(int i=; i<; i++)
{
for(int j=-i; j<=; j++)
{
ans=(ans-(dp[n-i][][j]+dp[n-i][][j])%mod+mod)%mod;
}
}
return ans;
}
int main()
{
memset(dp,,sizeof(dp));
dp[][][]=;
for(int i=; i<=; i++)
{
for(int j=;j<=;j++)
dp[i][][]=(dp[i-][][j]+dp[i][][])%mod;
for(int k=; k<=; k++)
dp[i][][k]=dp[i-][][k-];
for(int j=; j<=;j++)
dp[i][][]=(dp[i-][][j]+dp[i][][])%mod;
for(int k=; k<=; k++)
dp[i][][k]=dp[i-][][k-];
}
int n;
int cas;
scanf("%d",&cas);
for(int cc=; cc<=cas; cc++)
{
scanf("%d",&n);
if(n<)
{
printf("Case #%d: %d\n",cc,<<n);
}
else if(n<=){
int ans=solve(n);
printf("Case #%d: %d\n",cc,ans);
}else{int d=solve2(n);
printf("Case #%d: %d\n",cc,d);
}
}
return ;
}

fzu2204 dp的更多相关文章

  1. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  2. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  3. AEAI DP V3.7.0 发布,开源综合应用开发平台

    1  升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...

  4. AEAI DP V3.6.0 升级说明,开源综合应用开发平台

    AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...

  5. BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4026  Solved: 1473[Submit] ...

  6. [斜率优化DP]【学习笔记】【更新中】

    参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...

  7. BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 9812  Solved: 3978[Submit][St ...

  8. px、dp和sp,这些单位有什么区别?

    DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...

  9. android px转换为dip/dp

    /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public int dipTopx(Context context, float dpValue) { final floa ...

随机推荐

  1. java之获取资源文件

    背景介绍 在java程序中有时我们需要加载项目中的某些资源文件(如:config.properties之类),以便获取里面的值,这样可以避免某些需要经常修改的数据硬编码入业务程序中 实现方式 实现这种 ...

  2. shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出

    shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出 如: #/bin/sh local ret='sqlite3 test.db "select test ...

  3. 那些年读过的书《Java并发编程实战》一、构建线程安全类和并发应用程序的基础

    1.线程安全的本质和线程安全的定义 (1)线程安全的本质 并发环境中,当多个线程同时操作对象状态时,如果没有统一的状态访问同步或者协同机制,不同的线程调度方式和不同的线程执行次序就会产生不同的不正确的 ...

  4. Jenkins send build artifacts over ssh配置

    配置jenkins远程部署的时候遇到的配置问题: 首先在系统设置-系统设置-Publish over SSH-SSH Server中配置服务器信息 配置完成后可以点击Test Configuratio ...

  5. python练习题-day1

    1.使用while循环输入 1 2 3 4 5 6     8 9 10 count=0 while count<10: count+=1 if count==7: continue print ...

  6. python基本运算符、比较运算符、赋值运算符、逻辑运算符

    # 基本运算符号: " + - * / % ** //" # a=20# b=30## print(a+b) #相加 当是: "+" a+b输出的结果:50## ...

  7. 虚拟货币ICO是什么意思 看完秒懂

    有这样一个市场,与90年代的互联网泡沫及其相似,它被许多金融界大咖怒指为丧失道德底线的圈钱工具,更被投资者而疯狂追捧.是的,没错,它就是近二年火遍全球的虚拟货币ICO.那么,对于很多投资小白来说,虚拟 ...

  8. Py-numpy的随机函数【转载】

    转自:https://blog.csdn.net/u012149181/article/details/78913167 1. numpy.random.rand() numpy.random.ran ...

  9. 【Java】-NO.12.Java.2.OCJP.1.001-【Java OCJP】-

    1.0.0 Summary Tittle:[Java]-NO.12.Java.2.OCJP.1.001-[Java OCJP]- Style:Java Series:OCJP Since:2017-0 ...

  10. 9个Linux系统常用监控命令

    我们的系统一旦上线跑起来我们自然希望它一直相安无事,不要宕机,不要无响应,不要慢腾腾的.但是这不是打开机器电源然后放任不管就可以得到的.所以我们要监视系统的运行状况,发现问题及时处理. 对于系统和网络 ...