我先在已经弱到连高精乘单精都能写错的地步了QAQ

原题:

求一个小于等于N的数M,使得phi(M)/M最小,
其中phi(M)是与M互质且比M小的数的个数。
例如phi(4)=2,因为1,3和4互质。

N<=10^40

先推欧拉函数打表,发现答案一定是乘积<=m的前k个质数的乘积(比如50的答案就是2*3*5<=50)

然后就是高精水体

然而我写了2h QAQ,果然实力是会随着时间的推移降低的QAQ

主要错误就是关于乘出来结果的长度的问题,这个长度要在a[i]>=10往后推得时候变推边更新,不能先全部算完了再更新,因为推完后可能会因为%=10而出现中间有0的情况,这时候推长度推到这里就断了,但是边推边更新就不会出现这种情况,因为还没%=10,不会==0

我好弱啊QAQ

代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
void read_big(int *x,int &lx){lx=; char ch=getchar();
while(ch<''||ch>'') ch=getchar();
while(ch>=''&&ch<=''){ x[++lx]=ch-''; ch=getchar();}
}
int n[],ln;
int a[],la,b[],lb,c[];
bool kang[]; int zhi[],ztop=;
void shai(){
memset(kang,,sizeof(kang));
for(int i=;i<=;i++)if(!kang[i]){
zhi[++ztop]=i;
int temp=; while(i*(temp+)<=) kang[i*(++temp)]=true;
}
}
bool bi(int *x,int lx,int *y,int ly){
if(lx!=ly) return (lx>ly);
for(int i=lx;i>=;i--)if(x[i]!=y[i]) return (x[i]>y[i]);
return false;
}
void cheng(int *x,int &lx,int y){
for(int i=;i<=lx;i++) x[i]*=y;
for(int i=;i<=lx;i++) x[i+]+=x[i]/,x[i]%=;
for(;a[lx+];lx++) x[lx]+=x[lx]/,x[lx]%=;
}
int main(){//freopen("ddd.in","r",stdin);
shai();
read_big(c,ln);
for(int i=ln;i>=;i--) n[i]=c[ln-i+];
a[la=]=;
for(int i=;i<=;i++){
lb=la;
for(int j=;j<=lb;j++) b[j]=a[j];
cheng(a,la,zhi[i]);
if(bi(a,la,n,ln)){ for(int j=lb;j>=;j--)cout<<b[j]; cout<<endl; return ;}
}
return ;
}

【P1203】买花的更多相关文章

  1. P1203 [USACO1.1]坏掉的项链Broken Necklace

    P1203 [USACO1.1]坏掉的项链Broken Necklace不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等. #include<bi ...

  2. 【P1203】 【USACO1.1】坏掉的项链Broken Necklace

    P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 ...

  3. P1203 [USACO1.1]Broken Necklace(模拟-枚举)

    P1203 [USACO1.1]坏掉的项链Broken Necklace 题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 ...

  4. P8548 小挖的买花 方法记录

    原题链接 小挖的买花 题目背景 小挖喜欢买花,但是 ta 太懒了!所以这个任务全权交给了你. 题目描述 花店里只有 \(n\) 株花,每一株花都有三个属性:价格 \(cost_i\).美丽度 \(be ...

  5. 洛谷P1203 [USACO1.1]坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  6. 洛谷 P1203 [USACO1.1]坏掉的项链Broken Necklace

    坏掉的项链Broken Necklace 难度:★ Code: #include <iostream> #include <cstdio> #include <cstri ...

  7. AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  8. 题解 P1203 【[USACO1.1]坏掉的项链Broken Necklace】

    [USACO1.1]坏掉的项链Broken Necklace 22892 破碎的项链 方法一:很容易想到枚举断点,再分别两头找,但是要注意很多细节 #include<iostream> # ...

  9. [LuoguP1203][USACO1.1]P1203 Broken Necklace

    Solution 这道题数据规模奇小,因此大部分人都使用了暴力搜索的方法,这也是我一开始的想法. 对于 100100%100 的数据,3≤n≤3503≤n≤3503≤n≤350 的确可以如此,但暴力搜 ...

随机推荐

  1. SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容

    博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...

  2. SWPFILE实现(增加swap空间)

    1.mkdir /var/swap chmod  700  /var/swap(可以不用设置) 2.dd if=/dev/zero of=/var/swap/file bs=1024 count=65 ...

  3. EF学习笔记(二)

    DbContext 1.指定连接字符串(上一章提到) public string ConnectionStringName { get; private set; } /// <summary& ...

  4. java中判断字符串是否为数字的三种方法

    以下内容引自  http://www.blogjava.net/Javaphua/archive/2007/06/05/122131.html 1用JAVA自带的函数   public static ...

  5. 如何用JS判断网页中某个id的网页元素是否存在

    <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <m ...

  6. HTML中的边框属性

    可以通过边框风格属性border-style设定上下左右边框的风格,该属性用于设置一个元素边框的样式,而且必须用于指定可见的边框.可以使用1到4个关键字,如果四个值都给出了,它们分别用于上.右.下和左 ...

  7. SSO单点登录

    登录持久化机制:Cookies&&Session Cookie:是将信息存储到客户端,所有的信息不安全,都会对信息进行加密,cookies中会存储当前会话的唯一标识,即SessionI ...

  8. AmazeUI HTML元素

    按钮Button am-btn-xx(default.primary.secondary.success.warning.danger.link) am-radius 圆角按钮 am-round 椭圆 ...

  9. 【转】自动化任务运行器 Grunt 迅速上手

    原文转自:http://blog.jobbole.com/51586/ 这篇文章将带领你用Grunt来提速和优化网站开发的流程.首先我们会简短介绍Grunt的功能,然后我们直接上手,介绍如何用Grun ...

  10. js优化提升访问速度

    一.给JS文件减肥. 有的人为了给网站增加炫目效果,往往会使用一些JS效果代码,这在上个世纪似乎还很流行,对于现在来说,最好在用户体验确实需要的情况下,使用这些东西.至于希望给自己的JS文件减肥的童鞋 ...