NYOJ 645 骰子

骰子

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

小明有m个骰子,每一个骰子都是标准六面骰子,问题很简单,请求出他掷出固定点数的方法数

输入
有多组测试数据

每行一个整数m,k,m表示骰子的数量,k表示要掷的点数(1<=m<=100, 0<= k < 1000)

输出
每行输出掷出固定点数的方法数,算出的结果对100007取余
样例输入
2 1

2 3
样例输出
0

2
好坑爹啊!居然WA了这么多次!时间和内存耗费也很大!
AC码:
#include<stdio.h>
#include<string.h>
int dp[1001][1001];
void DP()
{
	memset(dp,0,sizeof(dp));
	dp[1][1]=1; dp[1][2]=1; dp[1][3]=1;
	dp[1][4]=1; dp[1][5]=1; dp[1][6]=1;
	int i,j,k,t;
	for(i=2;i<=1000;i++)
	{
		for(j=i;j<=6*i&&j<=1000;j++)
		{
			k=j;
			t=j-6;
			while(k>=i&&k>t)
			{
				dp[i][j]=(dp[i][j]+dp[i-1][k-1])%100007;
				k--;
			}
		}
	}
}
int main()
{
	int n,k;
	DP();
	while(~scanf("%d%d",&n,&k))
	{
		printf("%d\n",dp[n][k]);
	}
	return 0;
}

NYOJ 645 骰子,布布扣,bubuko.com

时间: 2024-12-17 19:06:40

NYOJ 645 骰子的相关文章

8个节点,每个节点上布置6个ROS,组装都用250,读出都用251,事例率为645.3Hz

组装都用250网段,读出都用251网段.除了黄色部分以外的节点都是cmm03节点. 平均事例率为:645.26Hz, ros所在节点的cpu idle 为17%.

利用Python分析快三骰子游戏

# -*- coding: utf-8 -*- """ Created on Tue Jan 24 13:07:01 2017 @author: Wayne """ import random import pandas as pd import matplotlib.pylab as pl list1 = [] list2 = [] m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17 = 0,0,

垒骰子

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6. 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来. atm想计算一下有多少种不同的可能的垒骰子方式. 两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同. 由于方案数可能过多,请输出模 10^9 +

NYOJ 237 游戏高手的烦恼 &amp;&amp; POJ3041-Asteroids ( 二分图的最大匹配 )

链接: NYOJ 237  游戏高手的烦恼:click here~~ POJ  3041 Asteroids           :click here~~ 题意: 两题一样,翻译不同而已. 有一位传说级游戏高手,在闲暇时间里玩起了一个小游戏,游戏中,一个n*n的方块形区域里有许多敌人,玩家可以使用炸弹炸掉某一行或者某一列的所有敌人.他是种玩什么游戏都想玩得很优秀的人,所以,他决定,使用尽可能少的炸弹炸掉所有的敌人. 现在给你一个游戏的状态,请你帮助他判断最少需要多少个炸弹才能炸掉所有的敌人吧.

NYOJ 49 开心的小明

开心的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行".今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元.于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要.他还从因特网上查到了每件物品的价格(都是整数元).

NYOJ 106 背包问题

背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10):如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大. 输入 第一行输入一个正整数n(1<=n<=5),表示有n组测试数据: 随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10

NYOJ 289 苹果

苹果 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. 输入 有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n.v同时为0时结束测试,此时不输出.接下来的n行,每行2个正整数,用空格隔开,分别代表苹果的大小c和价钱w.所有输入数字的范围大于等于0,小于等于1000. 输出 对每组测试数据输出一个整数,代表能放入背包的苹

nyoj 括号匹配

这个方程有两种形式,本文采用 if(s[i]=s[j]) dp[i][j]=d[i-1][j-1] dp[i][j]=min(dp[i][k]+dp[k+1][j],dp[i][j]) (i=<k<j) 其实与另一种方法比较:根据j的所有匹配情况取最小值 1.i到j无匹配,取为dp[i][j-1]+1 2.列举所有匹配情况 dp[i][k-1]+dp[k+1][j] 取上述所有情况最小值 两者都能获得正确的结果. 同时两者的初始化为 dp[i][j]==1 if(i==j) 规划方向为:  

《剑指offer》 面试题43 n个骰子的点数 (java)

引言:写这篇文章的初衷只是想做个笔记,因为这道题代码量有点大,有点抽象,而书上并没有详细的注释.为了加深印象和便于下次复习,做个记录. 原题:把n个骰子扔到地上,所有骰子朝上一面的点数之后为s. 输入n,打印出s所有可能的值出现的概率.(每个骰子6个面,点数从1到6) 解法一:基于递归,时间效率不高 递归的思想一般是分而治之,把n个骰子分为第一个和剩下的n-1个.先计算第一个骰子每个点数出现的次数,再计算剩余n-1个骰子出现的点数之和.求n-1个骰子的点数之的方法和前面讲的一样,即再次把n-1个