USACO Section2.2 Runaround Numbers 解题报告 【icedream61】
runround解题报告
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
给你一个数M,找出第一个比它大的循环数。
循环数:不包括0、没有重复数字,并且有循环性质的正整数。
循环性质:以81362为例
1.找到最高位,是8,那么往下数8位,依次是1,3,6,2,8,1,3,6
2.现在是6,那么继续往下数6位,是2,8,1,3,6,2
3.现在是2,数2位,是8,1
4.现在是1,数1位,是3
5.现在是3,数3位,是6,2,8
6.现在回到了8,并且每个数字都恰好被数了1次,那么这个数有循环性质。
【数据范围】
M是1~9位的自然数,所求答案一定可以用无符号长整形装下。
【输入样例】
81361
【输出样例】
81362
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
没啥可说的,直接做。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
今天精神不大集中,忽略了点小细节,没有一次AC。
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROB: runround
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; bool ok(long long num)
{
int l=,d[];
bool mark[]={},have[]={};
while(num) { d[l++]=num%; num/=; }
for(int i=;i!=l;++i)
if(have[d[i]]||d[i]==) return false;
else have[d[i]]=true; int i=l-,s=; mark[i]=true;
while(s<l)
{
int k=d[i];
i=(i-k+l*)%l;
if(mark[i]) return false;
mark[i]=true; ++s;
}
int k=d[i];
i=(i-k+l*)%l;
return i==l-;
} int main()
{
ifstream in("runround.in");
ofstream out("runround.out"); long long M,i; in>>M;
for(i=M+;!ok(i);++i);
out<<i<<endl; in.close();
out.close();
return ;
}
USACO Section2.2 Runaround Numbers 解题报告 【icedream61】的更多相关文章
- USACO Section2.1 The Castle 解题报告
castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section2.1 Ordered Fractions 解题报告
frac1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section2.1 Healthy Holsteins 解题报告 【icedream61】
holstein解题报告 --------------------------------------------------------------------------------------- ...
- USACO Section2.2 Preface Numbering 解题报告 【icedream61】
preface解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.1 Hamming Codes 解题报告 【icedream61】
hamming解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Controlling Companies 解题报告 【icedream61】
concom解题报告------------------------------------------------------------------------------------------ ...
- USACO Section2.3 Money Systems 解题报告 【icedream61】
money解题报告------------------------------------------------------------------------------------------- ...
- USACO Section2.3 Zero Sum 解题报告 【icedream61】
zerosum解题报告----------------------------------------------------------------------------------------- ...
- USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】
nocows解题报告------------------------------------------------------------------------------------------ ...
随机推荐
- ubuntu terminal copy paste
copy: ctrl + insert paste: shift + insert
- Entity Framework 6事务回滚
使用EF6你有新的事务处理可以使用类似于: 复制代码 using (var context = new PostEntityContainer()) { using (var dbcxtransact ...
- IDEA的常用操作(快捷键)
IDEA的常用操作(快捷键) Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt ...
- 【转】Android BroadcastReceiver介绍
本文主要介绍BroadcastReceiver的概念.使用.生命周期.安全性.分类.特殊的BroadcastReceiver(本地.粘性.有序.粘性有序广播).示例代码见BroadcastReceiv ...
- git常用命令(三)
====================================================================== 本地仓库操作 ====================== ...
- js 图片库 改进版
平稳退化 js与html标记分离? 如果有两个函数:firstFunction和secondFunction,如果想让它们俩都在页面加载时得到执行,可以调用函数addLoadEvent,只有一个参数, ...
- java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义
package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...
- CSU1216: 异或最大值(01Trie树)
Description 给定一些数,求这些数中两个数的异或值最大的那个值 Input 多组数据.第一行为数字个数n,1 <= n <= 10 ^ 5.接下来n行每行一个32位有符号非负整数 ...
- python格式化输出的方式汇总
%% 百分号标记 #就是输出一个%%c 字符及其ASCII码%s 字符串%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六进制)%X 无符号整数(十六 ...
- 用python写一个类似于linux中的tree
import os filePath = 'g:/File' j = 0 # 查找的深度计数 def tree(filePath,j): dir_now = os.listdir(filePath) ...