SGU 137.Funny String
题目描述
一个序列S1 S2 S3... Sn 如果满足 新序列 S1-1 S2 S3 ...Sn+1能够通过旋转的操作(不是翻转)来得到旧的序列,那么这个序列就叫做Funny序列。例如 1 2 1 2 2就是Funny序列,1 2 1 2 就不是
输入
给定一个数N,表示序列长度。一个数K,表示序列中所有数之和。 gcd(N,K)=1(这能保证本题一定有解)
输出
一行,N个数,表示满足条件的序列。
样例输入
9 16
样例输出
1 2 2 2 1 2 2 2 2
Solution:
假设原串S为,S0,S1....Sn-1.
旋转t次后为,St,St+1....St-1
根据对应的关系可知,
S0==St,S1==St+1,
即Si == Sj ,当 i mod t==j nod t 时成立。
读入n,和k之后,令S中所有元素都为 p=k/n
那么还剩下k mod n,没有分配.
由St=S0+1,知St=S2*t==Sm*t=p+1;
Sn-1=S0+1=p+1;
令 d=k mod n,即要分配的1的个数为d,
当 d*t%n==n-1;此时d个一全部分配完.
由此,先枚举t,确定t的大小.
再确定得到了1的那些元素,最后输出即可
参考代码:
#include <iostream>
using namespace std;
int n, k, t;
int f[1000];
int main() {
cin >> n >> k;
for (t = 1; t < n; t++)
if ( (n - 1) == (k % n) *t % n) break;
for (int i = t; i != n - 1; i = (i + t) % n)
f[i] = 1;
f[n - 1] = 1;
for (int i = 0; i < n; i++)
cout << k / n + f[i] << ' ';
}
SGU 137.Funny String的更多相关文章
- sgu 137. Funny Strings 线性同余,数论,构造 难度:3
137. Funny Strings time limit per test: 0.25 sec. memory limit per test: 4096 KB Let's consider a st ...
- java基础解析系列(九)---String不可变性分析
java基础解析系列(九)---String不可变性分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---In ...
- 【FTP】FTP文件上传下载-支持断点续传
Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...
- 最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)(转)
一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine- ...
- 【原】Java学习笔记034 - 网络
package cn.temptation; import java.net.InetAddress; public class Sample01 { public static void main( ...
- PJSUA2开发文档--第十二章 PJSUA2 API 参考手册
12 PJSUA2 API 参考手册 12.1 endpoint.hpp PJSUA2基本代理操作. namespace pj PJSUA2 API在pj命名空间内. 12.1.1 class En ...
- Oracle 闪回
Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...
- Java+Windows+ffmpeg实现视频转换
最近由于项目需要,研究了一下如何用Java实现视频转换,“着实”废了点心思,整理整理,写出给自己备忘下. 思路 由于之前没有没法过相关功能的经验,一开始来真不知道从哪里入手.当然,这个解决,googl ...
- sql的行转列(PIVOT)与列转行(UNPIVOT) webapi 跨域问题 Dapper 链式查询 扩展 T4 代码生成 Demo (抽奖程序)
sql的行转列(PIVOT)与列转行(UNPIVOT) 在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比 ...
随机推荐
- 【响应式Web设计实践 #BOOK#】
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 性能指标--并发用户数(Concurrent Users)
并发用户数是指:在某一时间点,与被测目标系统同时进行交互的客户端用户的数量. 并发用户数有以下几种含义: 1. 并发虚拟用户数(Concurrent Virtual Users,Users_CVU) ...
- scanf从文件中读入,printf写入到文件
重定向方式读写文件 #include <stdio.h> #define LOCAL int main() { #ifdef LOCAL freopen("input.txt&q ...
- openstack grizzly版network网络节点安装
版本以及源的配置和控制节点一致 1.安装完操作系统已经apt源配置完成之后,一定要执行 apt-get update root@cloud:~# mv /etc/apt/sources.list /e ...
- [git] git 的基本认知
版本管理 ( Version Control ) 版本管理系统是一个记录文件变更的系统,让你在一段时间后可以恢复指定版本的文件.版本管理系统大致可分为三类:独立的本地版本管理系统.中心化版本管理系统. ...
- Django的请求流程(url)
一.Django是怎么处理请求的? 当你通过在浏览器里敲http://127.0.0.1:8000/hello/来访问Hello world消息得时候,Django在后台有些什么动作呢? 所有均开始于 ...
- 广州Uber优步司机奖励政策(1月25日~1月31日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- MongoDB基础知识 01
MongoDB基础知识 1. 文档 文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...
- Telecasting station - SGU 114(带劝中位数)
题目大意:在一个数轴上有N个点,每个点都有一个权值,在这个数轴上找一个点,是的每个点到这个点的距离之和乘上权值的总和最小. 分析:以前也遇到过类似的问题,不过并不知道这是带权值的中位数问题,百度百科有 ...
- SDUT2608(Alice and Bob)
题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynom ...