zoukankan      html  css  js  c++  java
  • LQB2018A09倍数问题

     这个题,第一反应一定是三个for嵌套加一个max比较.

     超级无敌大暴搜

    #include <iostream>
    #include <string>
    #include <string.h>
    using namespace std;
    long MAX=0;
    int main(){
        long m[10000+2];
    
        int n,K;
        cin>>n>>K;
        for (int i = 0; i < n; ++i) {
            cin>>m[i];
    
        }
        for (int j = 0; j < n; ++j) {
            for (int i = j + 1; i < n; ++i) {
                for (int k = i + 1; k < n; ++k) {
                    if ((m[j]+m[k]+m[i])%K==0 && (MAX<m[j]+m[i]+m[k]) ){
                        
                        MAX=m[j]+m[i]+m[k];
                    }
    
                }
    
            }
    
        }
        cout<<MAX;
    
    }
    /*
    *这是官方题解,但是我觉得有点问题,我会再改一下的
    */


    #include <iostream> #include <string> #include <string.h> #include <vector> using namespace std; int n,K; long MAX=0; int x; void work(){ cin>>n>>K; vector<vector<int>> group(K,vector<int>(3)); int re; for (int i = 0; i < n; ++i) { cin>>x; re=x%K; //cout<<re<<endl; if(x>group[re][0]){//初始值均为0,所以没有问题 group[re][2]=group[re][1]; group[re][1]=group[re][0]; group[re][0]=x; } else if(x>group[re][1]){ group[re][2]=group[re][1]; group[re][1]=x; } else group[re][2]=x; //cout<<re<<":"<<group[re][0]<<" "<<group[re][1]<<" "<<group[re][2]<<endl; } long v1,v2,v3; for (int j = 0; j < K; ++j) { for (int i = j; i < K; ++i) { if(group[j][0]==0) continue; int kk=(K-i+K-j)%K; v1=group[j][0]; //cout<<"v1分别是"<<v1<<endl; if(i==j) { // if(!group[i][1]) // continue; v2 = group[i][1]; if(j==kk) { // if(!group[j][2]) // continue; v3 = group[j][2]; } else { // if(!group[kk][0]) // continue; v3 = group[kk][0]; } } else{ // if(!group[i][0]) // continue; v2=group[i][0]; if(j==kk){ // if(!group[j][1]) // continue; v3=group[j][1]; } else if(i==kk) { v3 = group[kk][1]; } else { v3 = group[kk][0]; } } if(v1+v2+v3>MAX) //cout<<v1<<" "<<v2<<" "<<v3<<endl; MAX=v1+v2+v3; //cout<<MAX; } } cout<<MAX; } int main(){ work(); return 0; }
  • 相关阅读:
    shell script
    Shell相关
    Linux文件目录磁盘基本知识
    Linux基础
    Spring事务
    跨域问题
    Ubuntu18.04安装MySQL
    如何掌握 Spring,Spring Boot 全家桶?系统学习 Spring 的大纲一份(实战教学)
    【问题解决】vim 打开文档后提醒 E325: ATTENTION 怎么办?
    vi 中按了 Ctrl+S 后死机不能动怎么办?
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/13372212.html
Copyright © 2011-2022 走看看