zoukankan      html  css  js  c++  java
  • F

     1 // worfzyq
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <vector>
     5 #include <algorithm>
     6 #include <map>
     7 #include <string>
     8 #include <set>
     9 using namespace std;
    10 typedef long long LL;
    11 const int MAX = 1e5+10;
    12 const int MOD = 1e9+7;
    13 int dp[110][1<<16],has[110];
    14 int prime[15]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
    15 int a[MAX];
    16 void init() {
    17     memset(has,0,sizeof(has));
    18     for(int i=1;i<=100;i++) {
    19         for(int j=0;j<15;j++) {
    20             if(i%prime[j]==0) {
    21                 has[i]|=(1<<j);
    22             }
    23         }
    24     }
    25 }
    26 int main() {
    27     //freopen("in.txt","w",stdout);
    28     init();
    29     int n,x;
    30     while(scanf("%d %d",&n,&x)==2) {
    31         for(int i=0;i<n;i++) {
    32             scanf("%d",&a[i]);
    33         }
    34         memset(dp,0,sizeof(dp));
    35         for(int i=0;i<n;i++) {
    36             for(int j=0;j<(1<<15);j++) {
    37                 dp[i+1][j]=max(dp[i+1][j],dp[i][j]);
    38                 if((j&has[a[i]])==0) {
    39                     dp[i+1][j|has[a[i]]]=max(dp[i+1][j|has[a[i]]],dp[i][j]+1);
    40                 }
    41             }
    42         }
    43         int ans=0;
    44         for(int i=0;i<(1<<15);i++) {
    45             ans=max(ans,dp[n][i]);
    46         }
    47         if(n&1) {
    48             if(ans>=n/2) {
    49                 if(x>=1) printf("YES ");
    50                 else printf("NO ");
    51             }
    52             else {
    53                 if(x>=n-ans*2) {
    54                     printf("YES ");
    55                 }
    56                 else {
    57                     printf("NO ");
    58                 }
    59             }
    60         }
    61         else {
    62             if(ans>=n/2) {
    63                 printf("YES ");
    64             }
    65             else {
    66                 if(x>=n-ans*2) {
    67                     printf("YES ");
    68                 }
    69                 else {
    70                     printf("NO ");
    71                 }
    72             }
    73         }
    74     }
    75     return 0;
    76 }
  • 相关阅读:
    吴恩达深度学习笔记 course2 week1 作业1
    吴恩达深度学习笔记 course2 week1 测验
    吴恩达深度学习笔记 course 2 1.1~1.14 深度学习的实用层面
    吴恩达深度学习笔记第四章作业2
    开发中经常遇到SVN清理失败的问题:
    UE4编程之C++创建一个FPS工程(一)创建模式&角色&处理输入
    Unreal Engine 4 C++ UCLASS构造函数易出错分析
    光照构建失败。Swarm启动失败
    ue4 C++ 生成并弹出一个菜单
    解决SVN Cleanup错误: Failed to run the WC DB work queue associated with
  • 原文地址:https://www.cnblogs.com/acvc/p/4303967.html
Copyright © 2011-2022 走看看