BestCoder24 1001.Sum Sum Sum(hdu 5150) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5150

题目意思:就是直接求素数。

  不过 n = 1,也属于答案范围!!只能说,一失足成千古恨啊~~~~~

  

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 using namespace std;
 6
 7 const int maxn = 1000 + 5;
 8 int prime[maxn];
 9
10 bool is_prime(int x)
11 {
12 //  if (x == 1)          // 太多手了,不能先入为主啊
13 //   return false;       // 被人 hack 的罪魁祸首
14     if (x == 2)
15         return true;
16     for (int i = 2; i * i <= x; i++)
17     {
18         if (x % i == 0)
19             return false;
20     }
21     return true;
22 }
23
24 int main()
25 {
26     memset(prime, 0, sizeof(prime));
27     for (int i = 1; i <= maxn; i++)
28     {
29         if (is_prime(i))
30             prime[i] = 1;
31     }
32
33     int n, data;
34     while(scanf("%d", &n) != EOF)
35     {
36         int sum = 0;
37         for (int i = 0; i < n; i++)
38         {
39             scanf("%d", &data);
40             if (prime[data])
41                 sum += data;
42         }
43         printf("%d\n", sum);
44     }
45     return 0;
46 }
时间: 2024-10-25 13:47:18

BestCoder24 1001.Sum Sum Sum(hdu 5150) 解题报告的相关文章

BestCoder10 1001 Revenge of GCD(hdu 5019) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5019 题目意思:给出 X 和 Y,求出 第 K 个 X 和 Y 的最大公约数. 例如8 16,它们的公约数依次为1 2 4 8,那么第 3 个 GCD(X, Y) = 2,也就是从后往前数第3个公共因子. TLE思路:求出 X 的所有因子(从小到大开始存储),再从后往前枚举这些因子,检查是否也为 Y 的因子,统计到第 K 个数就是答案了......以为可以顺利通过,原来数据量还是非常大滴!!! 正确

BestCoder10 1001 Revenge of Fibonacci(hdu 5018) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5018 题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A, f[2] = B),通过这条式子f[n] = f[n-1] + f[n-2],问 C 是否在这条 new Fibonacci sequence 内.(1 <= A, B, C <= 1 000 000 000) 首先,要想到 C 有可能是 A 或者 B,这种情况也是属于在这个序列范围内的. 还

BestCoder13 1001.Beautiful Palindrome Number(hdu 5062) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5062 题目意思:给出 N,找出 1 - 10^N 中满足 Beautiful Palindrome Numbers (BPN)的数量有多少. 满足 BPN 的条件有两个:(1)回文串   (2)对称的部分从左到右递增排放. (1)版本 1 (比较麻烦,建议看版本2)        46ms 1 #include <iostream> 2 #include <cstdio> 3 #inc

hdu 2112 HDU Today 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloon Rise 学到用map 的解法做之后,有点蠢蠢欲动,当时见到要用字典树做有点吓坏了(之前看过下,非一般难理解,所以暂时放下了).于是,死就死吧,硬住头皮用map做,反反复复修改终于过了. 首先是memory limit exceeded,因为无读清题目意思,直接开10000 * 10000的数组

LeetCode: Sum Root to Leaf Numbers 解题报告

Sum Root to Leaf Numbers Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf number

【LeetCode】Sum Root to Leaf Numbers 解题报告

[题目] Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. Find the total sum of all root-to-leaf numbers. For example, 1 /

BestCoder18 1001.Alexandra and Prime Numbers(hdu 5108) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5108 题目意思:给出一个数正整数 N,N <= 1e9,现在需要找出一个最少的正整数 M,使得 N/M 是素数.如果找不到就输出0. 一开始有想过将所有 <= 1e9 的素数求出来的,不过绝对超时就放弃了:然后就开始从题目中挖掘简便的处理方法.受到求素数的方法启发,枚举的因子 i 如果在 i * i <= N 之内都没有找到符合条件的素数,那么那些 > N 的因子就更不可能了.于是时间

BestCoder8 1001.Summary(hdu 4989) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4989 题目意思:给出 n 个数,然后将这些数两两相加,得到 n*(n-1) /2 对和,把重复的和去掉,最后相加起来. 用STL中的set可以好方便的做出来,因为 insert 的时候它会自动去除重复的.记得要用 long long 或 int64,因为 -1000000000 <= ai <= 1000000000 ! 1 #include <iostream> 2 #include

BestCoder12 1001.So easy(hdu 5058) 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5058 (格式有点问题,为了方便阅读---整个复制下来吧) 题目意思:给出两个长度都为 n 的集合你,问这两个集合是否相等. 其实思路非常容易想到,就是去重后判断嘛---我用到了set 来做.不过有个小细节!!! 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <cstr