zoukankan      html  css  js  c++  java
  • 喵哈哈村的魔法考试 Round #5 (Div.2) C

    喵哈哈村的狼人杀大战(4)

    发布时间: 2017年3月6日 11:36   最后更新: 2017年3月6日 11:39   时间限制: 1000ms   内存限制: 128M

    喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!

    徐元帅同学今天他抽到的是女巫的身份,按照他的一贯玩法,他喜欢一开始就把自己毒死。

    于是他早早的就出去了。

    他很无聊,于是出了一道题给自己玩。

    他从怀里面掏出了一个数字n。

    他想知道有多少组三元组(a,b,c),满足a<=b<=c,且a,b,c都是素数,而且a+b+c=n。

    本题包含若干组测试数据。
    每组测试数据只含有一个整数n。
    1<=n<=10000

    输出三元组的数量。

    复制
    3
    9
    0
    2

    这个题目就是先给素数打表,写一个素数数组...然后再去判断就好了(小细节...枚举前两个素数,最后一个用n减出来再判断一下)
     1 #include<iostream>
     2 #include<set>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<string.h>
     6 using namespace std;
     7 int n, p[5001], is_p[10002], len=0;
     8 void is_prime(int n){
     9     is_p[0]=1;
    10     is_p[1]=1;
    11     for(int i=2; i<n; i++){
    12         if(is_p[i]==0){
    13             p[len++]=i;
    14             for(int j=i*2; j<n; j+=i){
    15                 is_p[j]=1;
    16             }
    17         }
    18     }
    19 }
    20 int main(){
    21     memset(is_p, 0, sizeof(is_p));
    22     is_prime(10002);
    23     while(cin>>n){
    24         int cnt=0;
    25         for(int i=0; i<len; i++){
    26             for(int j=i; j<len; j++){
    27                 int a=p[i], b=p[j], c=n-a-b;
    28                 if(a+b>=n)    break;  //这里注意一下...要先判断下a+b和n的值,否则如果不判断的话,下一步is_p[]会re
    29                 if(is_p[c]==0&&c>=b) cnt++;
    30             }
    31         }
    32         cout<<cnt<<endl;
    33     }    
    34     return 0;
    35 }
  • 相关阅读:
    xcode swift对应版本
    VM12安装OS X10.11步骤及说明
    Java开发Webservice的组件
    xml文件格式说明
    android开发中在界面上实现曲线图的几个开源项目
    C#中SQL Server数据库连接池使用及连接字符串部分关键字使用说明
    c#对数据库访问完应关闭连接
    I2C VHDL程序
    数码管一些列功能的verilog实现
    PWM控制灯亮暗的verilog实现
  • 原文地址:https://www.cnblogs.com/ledoc/p/6559499.html
Copyright © 2011-2022 走看看