LQB2018A09倍数问题

这个题,第一反应一定是三个for嵌套加一个max比较.
超级无敌大暴搜
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
long MAX=;
int main(){
long m[+]; int n,K;
cin>>n>>K;
for (int i = ; i < n; ++i) {
cin>>m[i]; }
for (int j = ; j < n; ++j) {
for (int i = j + ; i < n; ++i) {
for (int k = i + ; k < n; ++k) {
if ((m[j]+m[k]+m[i])%K== && (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=;
int x;
void work(){
cin>>n>>K; vector<vector<int>> group(K,vector<int>()); int re;
for (int i = ; i < n; ++i) {
cin>>x;
re=x%K;
//cout<<re<<endl;
if(x>group[re][]){//初始值均为0,所以没有问题
group[re][]=group[re][];
group[re][]=group[re][];
group[re][]=x;
}
else if(x>group[re][]){
group[re][]=group[re][];
group[re][]=x; } else
group[re][]=x;
//cout<<re<<":"<<group[re][0]<<" "<<group[re][1]<<" "<<group[re][2]<<endl;
} long v1,v2,v3;
for (int j = ; j < K; ++j) {
for (int i = j; i < K; ++i) {
if(group[j][]==)
continue;
int kk=(K-i+K-j)%K;
v1=group[j][];
//cout<<"v1分别是"<<v1<<endl;
if(i==j) {
// if(!group[i][1])
// continue;
v2 = group[i][];
if(j==kk) {
// if(!group[j][2])
// continue;
v3 = group[j][];
}
else {
// if(!group[kk][0])
// continue; v3 = group[kk][];
}
}
else{
// if(!group[i][0])
// continue;
v2=group[i][];
if(j==kk){
// if(!group[j][1])
// continue;
v3=group[j][];
} else if(i==kk) { v3 = group[kk][];
} else { v3 = group[kk][];
} }
if(v1+v2+v3>MAX)
//cout<<v1<<" "<<v2<<" "<<v3<<endl;
MAX=v1+v2+v3;
//cout<<MAX; }
}
cout<<MAX;
}
int main(){
work();
return ; }
LQB2018A09倍数问题的更多相关文章
- [转]倍数提高工作效率的 Android Studio 奇技
转自:http://android.jobbole.com/81687/ 倍数提高工作效率的 Android Studio 奇技 2015/10/08 · 技术分享 · 4 评论· Android S ...
- 51nod 1109 01组成的N的倍数
用01 组成 N的最小倍数 这个BFS搜索就好. 类似这道: ZOJ Problem Set - 1530 每次 要么是0 要么是1, 记入余数,和前驱. #include<bits/stdc ...
- Python练习题 029:Project Euler 001:3和5的倍数
开始做 Project Euler 的练习题.网站上总共有565题,真是个大题库啊! # Project Euler, Problem 1: Multiples of 3 and 5 # If we ...
- Codeforces Round #276 (Div. 1) B. Maximum Value 筛倍数
B. Maximum Value Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/484/prob ...
- Oracle PL/SQL 找出100以内是3和5的倍数的数 循环语句
循环: loop --执行代码 exit when 表达式;--当表达式为真退出循环.(注意,其编写位置决定循环为先判断还是先执行,相当于java的while或do-while) end loop; ...
- 用if else 判断是不是7的倍数等
static void Main(string[] args) { while (true) { int b; ...
- NYOJ--517--最小公倍数(大数打表)
最小公倍数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致. 但也并非纯粹的偶然:60是个优秀的数字 ...
- 百度之星2017初赛A轮 1001 小C的倍数问题
小C的倍数问题 Accepts: 1990 Submissions: 4931 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...
- 51nod 1103 N的倍数 思路:抽屉原理+前缀和
题目: 这是一道很神奇的题目,做法非常巧妙.巧妙在题目要求n个数字,而且正好要求和为n的倍数. 思路:用sum[i]表示前i个数字的和%n.得到sum[ 1-N ]共N个数字. N个数字对N取模,每个 ...
随机推荐
- 高速缓存一致性协议MESI与内存屏障
一.CPU高速缓存简单介绍 CPU高速缓存机制的引入,主要是为了解决CPU越来越快的运行速度与相对较慢的主存访问速度的矛盾.CPU中的寄存器数量有限,在执行内存寻址指令时,经常需要从内存中读取指令所需 ...
- 01.RabbitMQ简单使用
官网地址:https://www.rabbitmq.com/getstarted.html RabbitMQ 优点: 数据处理异步执行: 应用之间解耦: 流量削峰 1.docker 安装 Rabbit ...
- BUUCTF-Misc-No.2
比赛信息 比赛地址:Buuctf靶场 [GUET-CTF2019]虚假的压缩包 | SOLVED 解压文件夹,发现2个zip,第一个伪加密,破解后 n=33 e=3 m=0 while m<10 ...
- day32 异常处理、网络编程
目录 一.异常处理 1 什么是异常 2 为什么要处理异常 3 如何处理异常 3.1 语法错误 3.2 逻辑错误 3.3 两种处理逻辑异常的方式 3.3.1 可预知型错误 3.3.2 不可预知型错误 4 ...
- 03 flask源码剖析之threading.local和高级
03 threading.local和高级 目录 03 threading.local和高级 1.python之threading.local 2. 线程唯一标识 3. 自定义threading.lo ...
- oracle终止用户会话
1.创建两个测试用户进行实验 执行命令如下: create user test1 identified by 1; create user test2 identified by 1; grant d ...
- js:数组(创建、遍历、函数)
1.数组 采用单个变量只能存储一个数据,数组能够存储多个数据,获取方式也比较简单.它是将一组数据存储在当个变量下的存储方式. 2.数组的创建 (1)new方式创建,不指定数组长度 <script ...
- 题解 CF1372C
题目 传送门 题意 给你一个 \(1\) 到 \(n\) 的排列. 定义特殊交换为:选择一段区间\([l,r]\) ,使得此段区间上的数交换后都不在原来的位置. 问最少多少次可以将此排列变成升序的. ...
- go : 连接数据库并插入数据
package main import ( "database/sql" "fmt" "log" "net/http" ...
- 微信扫码登陆js
先贴一个微信开发文档教程 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.ht ...