我先在已经弱到连高精乘单精都能写错的地步了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. arm裸机驱动错误总结

    错误001:

  2. [安卓][转]internal(com.android.internal)和hidden(@hide)APIs简介及在应用程序中的调用方法

    转自:http://www.cnblogs.com/xirihanlin/archive/2011/06/05/2073118.html [引言]:我在做android softap的时候看到andr ...

  3. 【转】clang warning 警告清单(备查,建议直接command + F 速查 )

    Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belon ...

  4. CSS Overflow:hidden

    终于知道为什么要设置OverFlow:Hidden了, 看代码: <div id="wrapper"> <figure class="img-wrapp ...

  5. HTML--7JavaScript的DOM操作

    1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Window对象操作 一.属性和方法: 属性(值或者子对象): op ...

  6. STM32串口USART1的使用方法

    前言: 通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换. USART利用分数波特率发生器提供宽范围的   波特率选择,支持同 ...

  7. poj蚂蚁问题

    问题描述: n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行.当蚂蚁爬到竿子的端点时就会掉落.由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向 爬回去.对于每只蚂蚁,我们知道它距离竿子左 ...

  8. Makefile学习笔记

    ls -l 查看文件详细信息 1.gcc -E test.c -o test.i//预编译gedit test.i //查看:高级C 2.gcc -Wall -S test.i -o test.s// ...

  9. fedora下vim配置

    一.安装 1)dnf安装 fedora22以下 sudo yum install vim fedora22及以上 sudo dnf install vim 如果遇到下面类似的错误 .gz from : ...

  10. postfix 邮件备份方法

    postfix 邮件备份方法: postfix的bcc(密送)功能可以根据条件,将所有经过postfix队列的邮件根据规则密送到指定的邮箱. postfix带有三个bcc参数: ①.always_bc ...