zoukankan      html  css  js  c++  java
  • P2429 【制杖题】

    这题目名字也是够了。。。

    emmmmmm
    为什么要用线筛??????
    不感觉很麻烦吗??????
    既然是智障制杖题,那么肯定要用很简单的算法啦~
    下面,我就提供一种非常便于理解的膜你算法~~~
    很明显,做了这题的人都会想到去重这个东西,bool数组是不现实的,那么鉴于n的值很小,我们就想到了暴力模拟,下面贴出代码(头文件啥的就不发了):

     1 int n,m,ans;
     2 int a[25];//定义
     3 int main(){
     4     scanf("%d %d",&n,&m);
     5     for(int i=1;i<=n;i++){//边读边做
     6         scanf("%d",&a[i]);//读入
     7         for(int j=a[i];j<=m;j+=a[i]){//题目说明了集合里一定是质数,所以只需要考虑集合里质数的倍数就好了
     8             bool ok=true;//bool变量
     9             for(int k=1;k<i;k++){//因为n很小,并且基于一点贪心的思想,就可以用一个模拟去重
    10                 if(j%a[k]==0){
    11                     ok=false;//如果取过了,就不取
    12                 }
    13             }
    14             if(ok){//没有取过的情况
    15                 ans+=j;
    16                 ans%=376544743;//取模
    17             }
    18         }
    19     }
    20     printf("%d
    ",ans);//输出
    21     return 0;
    22 }

    是不是很好理解呢~~~
    本人QQ:2124652975,对题目有不理解的地方或是觉得在下表述不清的dalao欢迎骚扰~

    还有就是,新人开博鼓励一下吧~~

  • 相关阅读:
    本地安全策略
    windows本地用户及组的区别
    mysql基本命令总结
    常用DOS命令
    AES加密算法详解
    ctf密码学习题总结
    CTF最简单的Web题
    python进阶篇
    JNI开发流程
    JDK中的Timer和TimerTask详解
  • 原文地址:https://www.cnblogs.com/hahaha2124652975/p/11123192.html
Copyright © 2011-2022 走看看