hihoCoder-1839 榶榶榶 数学
题意:给你一个500000长度的数字,然后环形的让每位做头,例如123,就有123,231,312三个,然后问这n个数字的和S,S的最小非1因子是多少
题解:每个数字在每个位置都会有一次,如果说所有数字之和为A(1234的A就是10),那么原始长度为N的数,S就一定长成AAAAAAAAAAAAAA
也就是 S=A*10^0+A*10^1+A*10^2+...+A*10^(n-1)
10S= A*10^1+A*10^2+...+A*10^(n-1)+A*10^n
9S=A*10^n-A
那其实S就是A*1111111(n个1),也就是找A和111111(n个1)因子中最小的那个 这个数当然也一定是质数
对于A,我们知道500000*9=4500000,也就是A最大这么多,可以暴力sqrt(A),找到他最小的因子
但是对于11111(n个1),他的最小因子就没有规律,通过打表可以发现,除了每3项有一个可以被3整除,还常有11,41,并时不时的出现他自身(也就是说这个数是质数)
但是题目说了保证答案是小于5*10^6 所以我们可以预处理这范围内的所有素数,然后挨个判断能否被1111(n个1)整除
那这样其实我们就可以直接对S进行操作,不需要拆分了,S=(A*10^n-A)/9,枚举质因子p 意思就是要满足(A*10^n-A)%(9p)==0就行了
#include<bits/stdc++.h>
using namespace std;
char c;
int x,tot,ans;
int f[];
int pow(int a,int b,int mod)
{
if (b==) return a;
long long t=pow(a,b/,mod);
t=t*t%mod;
if (b%) t=t*a%mod;
return t;
}
int check(int n,int s,int m)
{
int res=(pow(,n,*m)+*m-)%(*m)/;
return 1LL*res*s%m==;
}
int main()
{
for(int i=;i<;i++)
if (!f[i])
for(int j=i+i;j<;j+=i) f[j]=;
while (scanf("%c",&c)!=EOF)
{
if (c>='' && c<='')
{
tot++;
x+=c-'';
}else break;
}
for(int i=;i<=;i++)
if (!f[i] && check(tot,x,i))
{
printf("%d",i);
return ;
}
}
hihoCoder-1839 榶榶榶 数学的更多相关文章
- hihocoder 1489(微软2017, 数学,模拟)
题目链接:http://hihocoder.com/problemset/problem/1489?sid=1587434 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 ...
- hihoCoder #1498 : Diligent Robots【数学】
#1498 : Diligent Robots 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 There are N jobs to be finished. It t ...
- hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
#1584 : Bounce 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 For Argo, it is very interesting watching a cir ...
- ACM学习历程—Hihocoder 1164 随机斐波那契(数学递推)
时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 大家对斐波那契数列想必都很熟悉: a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1). ...
- hihoCoder #1246 : 王胖浩与环 (数学)
题意: 有一个环形序列,可以将其切成连续的k段子序列,那么gcd( 每段子序列的和 )就是优美程度.输出n个整数,表示当k=[1, n] 时的最大优美程度. 思路: 观察一下,当切成1段的时候,gcd ...
- hihoCoder #1234 : Fractal(数学简单题)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 This is the logo of PKUACM 2016. More specifically, the logo i ...
- HihoCoder - 1789:阶乘问题 (简单数学)
描述 给定 n, k,求一个最大的整数 m,使得 km 是 n! 的约数 输入 第一行两个正整数 n, k 2 ≤ n,k ≤ 109 输出 输出最大的 m 样例输入 5 2 样例输出 3 思路:我们 ...
- hihocoder #1068 : RMQ-ST算法 ( RMQ算法 O(nlogn)处理 O(1)查询 *【模板】 1)初始化d数组直接读入+计算k值用数学函数log2()==*节约时间 )
#1068 : RMQ-ST算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在美国旅行了相当长的一段时间之后,终于准备要回国啦!而在回国之前,他们准备 ...
- hihocoder 1584 Bounce (数学 && 规律) ACM-ICPC北京赛区2017网络赛
题意: 给定一副n*m的格子图, 问从左上角的点开始往右下角滑,碰到墙壁就反弹, 碰到角落就停止, 问恰好经过一次的格子有多少个. 如图,恰好经过一次的格子有39个. 分析: 首先要引入两个概念, “ ...
随机推荐
- System.Web.Caching.Cache类 Asp.Net缓存 各种缓存依赖
Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例. 一.属性 属性 说明 Count 获取存储在缓存中的 ...
- halcon 模板匹配 -- find_shape_model
find_shape_model(Image : : //搜索图像 ModelID, //模板句柄 AngleStart, // 搜索时的起始角度 AngleExtent, //搜索时的角度范围, ...
- post请求获取json数据 解析json数据
<script> window.onload = function () { var str; // console.log(@ViewBag.ID); $.post("/Ser ...
- Java通过接口实现匿名类的实例
package com.chase.test; /** * 通过接口实现匿名类的实例 * * @author Chase * * @date 2013-10-18 下午04:28:17 * * @ve ...
- javaee IO流打印一行的方式
package Dayin; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.F ...
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)
跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...
- USACO 4.1 Fence Rails
Fence RailsBurch, Kolstad, and Schrijvers Farmer John is trying to erect a fence around part of his ...
- 关于linux suse11忘记root密码修改方法
SUSE Linux忘记root密码 1.重新启动机器,在出现grub引导界面后,按F2,在启动linux的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使 ...
- BZOJ 2085 luogu P3502 [POI2010]Hamsters (KMP、Floyd、倍增)
数组开小毁一生-- 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2085 这题在洛谷上有个条件是"互不包含",其实 ...
- 使用timthumb.php截取文章缩略图
wordpress自带的缩略图功能会对每次上传的所有图片根据设置的图片尺寸进行裁剪,并把原图和裁剪后的图片保存在网站空间中,图片只裁剪一次,更改设置的尺寸不会重新生成,这样不仅占用主机空间,以后改版网 ...