题意不说了,中文的题意!= =!
思路:
DP思想!
可以这么想,设计一个二维的dp[i][j],i表示当前填第i个数,此时为第j 个状态!
第一维不用说,说说第二维!
总共有四个数0,1,2,3,那么当前该填i个数时,此时已经填了一些数,还剩下没填的数,这个填了的数的集合就是状态!
0,1,2,3的四个数总共子集有0,1,2,3,01,02,03,12,13,23,012,013,023,123,0123,想一想可以知道,符合要求的状态只有六个!
分别是:
2,02,23,012,023,0123
所以第二维只需要6个数即可!
拿一个状态举例子吧:
比如说这个状态是023,那么转移可以由02 加个3 转来,也可以有23 加个0转来,也可以有023 加0 或者3 转来!
因此[4] = [1] * 1 + [2] * 1 + [4] * 2;
注意取模即可!
坑:
虽然取模了,仍然会爆int
开long long 就好了!
详细见代码:
#include
#include
#include
using namespace std;
const int mod = 1000000007;
const int maxn = 1000 + 10;
typedef long long ll;
ll dp[maxn][7];
int main(){
int n;
scanf("%d",&n);
for (int i = 1; i
问题描述
试题编号: |
201312-4 |
试题名称: |
有趣的数 |
时间限制: |
1.0s |
内存限制: |
256.0MB |
问题描述: |
问题描述 我们把一个数称为有趣的,当且仅当: 输入格式 输入只有一行,包括恰好一个正整数n (4 ≤ n ≤ 1000)。 输出格式 输出只有一行,包括恰好n 位的整数中有趣的数的个数除以1000000007的余数。 样例输入 4 样例输出 3 |
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
摘要:在技术领域中,没有银弹。我们需要不断探索和研究新的技术,结合具体问题和需求,选择最适合的解决方案。 本文分享自华为云社区《知乎问题:如何说服技术老大用 Redis ?》,作者:勇哥java实战分享。 最近在某问答平台看到一个技术讨论:如何说服技术老大用R…