1360: Good Serial Inc.

Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 172     Solved: 38


Description

Good Serial Inc. (GSI) produces integer sequences with length N, in which every element is an integer in range [1, M].
They call a sequence S is good if the sequence has the following property: for every substring of S with length M, i.e., S[i→i+m-1], all the elements in the substring are the same or all the elements are distinct(different from each other).
The company GIS is designed to produce good sequences. But how many different good sequences are there? Since the answer will be very large, just output the result after module 987654321.

Input

There are several cases. For each case, there is a line with two integers N, and M ( 1 ≤ N ≤ 1000000, 1 ≤ M ≤ 1000000 ).
The input ends up with two negative numbers, which should not be processed as a case.

Output

Print the number of different good sequences module 987654321 in a line for each case.

Sample Input

4 4
3 5
-1 -1

Sample Output

28
125

Hint

Source

做法:
1.当m==1的时候,序列全部由相同的1组成
2.m==2的时候,对序列的每个位置都可以有两种情况,所以是m的n次方

注意m==2要放在n>=m的情况中讨论
3.n>=m m长度的子串全部相同的情况:m种,全1到m
    m长度的子串全部不同的情况:m的全排列 所以是m的阶乘
    所以是二种情况的总和
4.n<m 也是m的n次方

#include<stdio.h>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<memory.h>
#include<memory>
using namespace std;
#define mod 987654321
typedef long long LL;
LL f(int n,int m)
{
LL ans=; if(m==)
return ;
if(n>=m)
{
if(m==)
{
for(int i=;i<=n;i++)
ans=ans*m%mod;//m的n次方
}
else
{
for(int i=;i<=m;i++)
ans=(ans*i)%mod;//m的阶乘
ans+=m;
}
return ans;
}
else if(n<m)
{
for(int i=;i<=n;i++)
ans=ans*m%mod;//m的n次方
return ans;
}
}
int main()
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
if(n<&&m<)
break;
printf("%lld\n",f(n,m));
}
return ;
}
/*
做法:
1.当m==1的时候,序列全部由相同的1组成
2.m==2的时候,对序列的每个位置都可以有两种情况,所以是m的n次方
3.n>=m m长度的子串全部相同的情况:m种,全1到m
m长度的子串全部不同的情况:m的全排列 所以是m的阶乘
所以是二种情况的总和
4.n<m 也是m的n次方
*/

1360: Good Serial Inc.(不知道是什么类型的题)的更多相关文章

  1. 另一道不知道哪里来的FFT题

    给定一个序列,求出这个序列的k阶前缀和,模998244353,n<=1e5. k阶前缀和可以看成一个一个n*k的平面上的二维行走问题. 第i项对第j项的贡献是从(i,0)走到(j,k)的NE L ...

  2. 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)【A题 类型好题】

    A. Berstagram Polycarp recently signed up to a new social network Berstagram. He immediately publish ...

  3. 【项目 · Wonderland】立项报告

    [软件工程实践 · 团队项目] 第二次作业 团 队 作 业 原 文:http://www.cnblogs.com/andwho/p/7598662.html Part 0 · 简 要 目 录 Part ...

  4. C/C++函数调用的几种方式及函数名修饰规则以及c++为什么不允许重载仅返回类型不同的函数

    我们知道,调用函数时,计算机常用栈来存放函数执行需要的参数,由于栈的空间大小是有限的,在windows下栈是向低地址扩展的数据结构,是一块连续的内存区域.这句话的意思是栈顶的地址和栈的最大容量是系统预 ...

  5. 15.C#回顾及匿名类型(八章8.1-8.5)

    今天的篇幅应该会很长,除了回顾前面学的一些,还有写一些关于匿名类型的相关知识,总体上对后续的学习很有帮助,学好了,后面更容易理解,不明白的,那就前面多翻几次,看多了总是会理解的.那么,进入正题吧. 自 ...

  6. ComparatorChain、BeanComparator用法示例(枚举类型排序转)

    工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列. 可以使用ComparatorChain.BeanComparator.FixedOrderComparator实现. 举一 ...

  7. JAVA编程思想——类型信息(反射)

    一.反射与RTTI RTTI:这个类型必须在编译的时候已知或者存在,如果不知道对象的确切类型,RTTI可以告诉你. 反射(个人认为就是能够利用Class获取或者调用.class这个文件中的数据):当我 ...

  8. Spring(三)--AOP【面向切面编程】、通知类型及使用、切入点表达式

    1.概念:Aspect Oriented Programming 面向切面编程 在方法的前后添加方法   2.作用:本质上来说是一种简化代码的方式      继承机制      封装方法      动 ...

  9. python 鸭子类型

    首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型. 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格.在这种风格中,一个对象有效的语义,不 ...

随机推荐

  1. JavaScript-点击表格的表头进行排序

    HTML如下: <table class="heroinfo"> <thead title="点击排序"> <tr> < ...

  2. angular自定义指令 repeat 循环结束事件;limitTo限制循环长度、限定开始位置

    1.获取repeat循环结束: 自定义指令: .directive('repeatFinish', function () { return { link: function (scope, elem ...

  3. OpenGL学习--07--模型加载(obj)

    1.tutorial07.cpp // Include standard headers #include <stdio.h> #include <stdlib.h> #inc ...

  4. 2017 先知创新大会:有 ZHI 而来

    先知创新大会( XIANZHI INNOVATION CONFERENCE ) 是聚焦安全行业创新的行业盛事, 旨在推动安全技术的进步和发展. 先知大会的主题是“极致·眼界·创新” 极致:追求技术的极 ...

  5. 单机安装hive和presto

    问题: 公司最近在搞presto,主要是分析一下presto和hive的查询大数据量的性能对比: 我先把我的对比图拿出来(50条数据左右)针对同一条sql(select * from employee ...

  6. Asp.net mvc Kendo UI Grid的使用(三)

    上一篇的操作已经能够显示基本数据了,这次介绍一下如何进行数据操作以及显现自定义命令. 第一步当然还是准备数据: [HttpPost] public ActionResult PersonalList_ ...

  7. 6.Spring MVC SSM整合问题总结

    1.Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter] for ...

  8. Oracle v$session/v$sql 表

    在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESS ...

  9. [翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]

    USING GIT IN XCODE LOOKING AT HISTORY Xcode provides a Versions editor, which has three different pe ...

  10. AD用户登录验证,遍历OU(LDAP)

    先安装python-ldap模块 1.验证AD用户登录是否成功 import sqlite3,ldap domainname='cmr\\' username='zhangsan' ldapuser ...