1360: Good Serial Inc.(不知道是什么类型的题)
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.(不知道是什么类型的题)的更多相关文章
- 另一道不知道哪里来的FFT题
给定一个序列,求出这个序列的k阶前缀和,模998244353,n<=1e5. k阶前缀和可以看成一个一个n*k的平面上的二维行走问题. 第i项对第j项的贡献是从(i,0)走到(j,k)的NE L ...
- 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 ...
- 【项目 · Wonderland】立项报告
[软件工程实践 · 团队项目] 第二次作业 团 队 作 业 原 文:http://www.cnblogs.com/andwho/p/7598662.html Part 0 · 简 要 目 录 Part ...
- C/C++函数调用的几种方式及函数名修饰规则以及c++为什么不允许重载仅返回类型不同的函数
我们知道,调用函数时,计算机常用栈来存放函数执行需要的参数,由于栈的空间大小是有限的,在windows下栈是向低地址扩展的数据结构,是一块连续的内存区域.这句话的意思是栈顶的地址和栈的最大容量是系统预 ...
- 15.C#回顾及匿名类型(八章8.1-8.5)
今天的篇幅应该会很长,除了回顾前面学的一些,还有写一些关于匿名类型的相关知识,总体上对后续的学习很有帮助,学好了,后面更容易理解,不明白的,那就前面多翻几次,看多了总是会理解的.那么,进入正题吧. 自 ...
- ComparatorChain、BeanComparator用法示例(枚举类型排序转)
工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列. 可以使用ComparatorChain.BeanComparator.FixedOrderComparator实现. 举一 ...
- JAVA编程思想——类型信息(反射)
一.反射与RTTI RTTI:这个类型必须在编译的时候已知或者存在,如果不知道对象的确切类型,RTTI可以告诉你. 反射(个人认为就是能够利用Class获取或者调用.class这个文件中的数据):当我 ...
- Spring(三)--AOP【面向切面编程】、通知类型及使用、切入点表达式
1.概念:Aspect Oriented Programming 面向切面编程 在方法的前后添加方法 2.作用:本质上来说是一种简化代码的方式 继承机制 封装方法 动 ...
- python 鸭子类型
首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型. 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格.在这种风格中,一个对象有效的语义,不 ...
随机推荐
- css的元素表现
块级元素和行内元素的表现: 块级元素:块级元素和父元素的宽度一致,默认情况下就是和body的宽度一样,也可以说和浏览器窗口的宽度一致,致使同一行不能再放下另外的元素,所以块级元素表现为独占一行. 块级 ...
- 封装一个 TopBarBaseActivity
什么是快速开发嘞,看这个效果 然而我只用了这么几行代码: activity_main.xml 里面什么也没有! 其实说白了哈,就是我把 TopBar 封装在 TopBarBaseActivity 里面 ...
- eclipse中DDMS 视图中sdcard中文件导入的处理
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题. ...
- 网络 TCP三次握手及滑动窗口
三次握手客户端向服务器发出触发请求syn=1:因为这时还没有得到服务器的回应,所以ack=0服务器接收到客户端的触发请求,回复ack=1,表示已经接收到客户端的请求:同时服务器也向客户端发出触发请求, ...
- node (1)
一.介绍 Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端. 但Node似乎有点不同: ● Node.js不是一种独立的语言,与PHP. ...
- Week3——文档代码分析
该段代码代码显示了不使用异步处理的基本servlet: @WebServlet(urlPatterns={"/syncservlet"}) public class SyncSer ...
- spring boot(11)-druid监控
druid druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴.关于druid连接池参数,参考 https://github.com/alibaba/druid/wiki/DruidD ...
- 由delete导致的超时已过期问题
1. 问题 开发人员反映应用程序中一条简单的delete语句执行报“超时已过期”错误.delete语句形式如下: delete * from table_1 where id=@value 2. 分析 ...
- 第六章 函数、谓词、CASE表达式 6-1 各种各样的函数
一.函数的种类 算术函数 字符串函数 日期函数 转换函数 聚合函数 二.算术函数 + - * / 1.ABS——绝对值 ABS(数值) 绝对值 absolute value ,不考虑数值的符号 ...
- 判断js对象类型
javascript中检测对象的类型的运算符有:typeof.constructor.instanceof.prototype. 1.typeof typeof是一个一元运算符,返回结果是一个说明运算 ...