题意:给一个集合,求d=a+b+c,d最大且a,b,c,d下标不能是同一个

解题思路

a+b=d-c

另外,可以OJ看下0ms大佬们的代码.

#include "pch.h"
#include <string>
#include<iostream>
#include<map>
#include<memory.h>
#include<vector> namespace cc
{
using std::cout;
using std::endl;
using std::cin;
using std::map;
using std::vector;
class Add
{ public:
int ai;
int bi;
int sum;
Add() {};
Add(int a, int b, int sum) :ai(a), bi(b) {
this->sum = sum;
}
}; constexpr int N = 1000;
int a[N];
int n; map<int, vector<Add>> addMaps;
int ok;
int d; int cmp(void const* v1, void const* v2)
{
int* k1 = (int*)v1;
int* k2 = (int*)v2;
return *k1 - *k2;
} void dump()
{
for (int i = 0;i < n;i++)
{
cout << " " << a[i];
}
cout << endl;
} void add()
{
using IT = map<int, vector<Add>>::iterator;
for (int i = 0;i < n - 1;i++)
for (int j = i + 1;j < n;j++)
{
//all a+b
auto sum = a[i] + a[j];
Add A(i, j, sum);
IT it = addMaps.find(sum);
if (it == addMaps.end())
{
vector<Add> v;
v.push_back(A);
addMaps[sum] = v;
}
else
{
it->second.push_back(A);
}
} //all d-c
for (int i = n - 1;i >= 0 && ok == 0;i--)
{
for (int j = n - 1;j >= 0;j--)
{
if (i == j)
continue;
auto sub = a[i] - a[j];
IT it = addMaps.find(sub);
if (it == addMaps.end())
{
continue;
}
vector<Add> adds = addMaps[sub];
for (int k = 0;k < adds.size();k++)
{
if (adds[k].ai != i && adds[k].ai != j && adds[k].bi != i && adds[k].bi != j)
{
ok = 1;
d = a[i];
}
}
if (ok)
break;
}
} } void read()
{
memset(a, 0, sizeof(a));
ok = 0;
addMaps.clear();
for (int i = 0;i < n;i++)
{
cin >> a[i];
}
//sort,cong xiao dao da
qsort(a, n, sizeof(int), cmp);
//dump();
} void solve()
{
while (cin >> n && n)
{
read();
add();
if (ok)
cout << d << endl;
else
cout << "no solution" << endl;
} } }; int main()
{ #ifndef ONLINE_JUDGE
freopen("d://1.text", "r", stdin);
#endif // !ONLINE_JUDGE
cc::solve(); return 0;
}

  

uva-10125-暴力枚举的更多相关文章

  1. uva 11088 暴力枚举子集/状压dp

    https://vjudge.net/problem/UVA-11088 对于每一种子集的情况暴力枚举最后一个三人小组取最大的一种情况即可,我提前把三个人的子集情况给筛出来了. 即 f[S]=MAX{ ...

  2. UVA.12716 GCD XOR (暴力枚举 数论GCD)

    UVA.12716 GCD XOR (暴力枚举 数论GCD) 题意分析 题意比较简单,求[1,n]范围内的整数队a,b(a<=b)的个数,使得 gcd(a,b) = a XOR b. 前置技能 ...

  3. UVA 10012 How Big Is It?(暴力枚举)

      How Big Is It?  Ian's going to California, and he has to pack his things, including his collection ...

  4. UVA - 11464 Even Parity 【暴力枚举】

    题意 给出一个 01 二维方阵 可以将里面的 0 改成1 但是 不能够 将 1 改成 0 然后这个方阵 会对应另外一个 方阵 另外一个方阵当中的元素 为 上 下 左 右 四个元素(如果存在)的和 要求 ...

  5. 紫书 例题 10-2 UVa 12169 (暴力枚举)

    就是暴力枚举a, b然后和题目给的数据比较就ok了. 刘汝佳这道题的讲解有点迷,书上讲有x1和a可以算出x2, 但是很明显x2 = (a * x1 +b) 没有b怎么算x2?然后我就思考了很久,最后去 ...

  6. UVA 725 UVA 10976 简单枚举

    UVA 725 题意:0~9十个数组成两个5位数(或0开头的四位数),要求两数之商等于输入的数据n.abcde/fghij=n. 思路:暴力枚举,枚举fghij的情况算出abcde判断是否符合题目条件 ...

  7. UVA 10125 - Sumsets(POJ 2549) hash

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  8. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)

    题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...

  9. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...

  10. HNU 12886 Cracking the Safe(暴力枚举)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274 解题报告:输入4个数 ...

随机推荐

  1. 【java】函数概述

    函数也叫方法,是具有一定功能的小程序. 函数格式: 修饰符 返回值类型 函数名(参数类型 形式参数:参数类型 形式参数) { 执行语句: return 返回值; } 返回值类型:函数运行后结果的数据类 ...

  2. python doc

    http://blog.51cto.com/lizhenliang/category16.html

  3. MySQL5.7 GTID 浅析

    https://yq.aliyun.com/articles/68441 摘要: # GTID 简介 GTID (global transaction identifier)在MySQL5.6时引入, ...

  4. ALGO-140_蓝桥杯_算法训练_P1101

    有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函数中定义一个prut类型的结构体数组,输入每个元素的值,计算并输出提货单的 ...

  5. 廖雪峰Java3异常处理-1错误处理-3抛出异常

    1.异常的传播 当某个方法抛出异常时: 如果当前方法没有捕获,异常就被抛到上层调用方法 直到遇到某个try...catch被捕获 使用printStackTrace()打印处方法的调用栈 import ...

  6. grep简单用法

    grep 常用参数: -c: 打印符合要求的行数 -i :忽略大小写 -n:输出行和行号 -v:打印不符合要求的行,即反选 -A:后跟数字(有无空格都可以),例如-A2 表示打印筛选行及前2行 -B: ...

  7. 三种通用应用层协议protobuf、thrift、avro对比,完爆xml,json,http

    原文: https://www.douban.com/note/523340109/ Google protobuf: 优点  二进制消息,性能好/效率高(空间和时间效率都很不错)     proto ...

  8. public class的类名必须跟文件名保持一致吗?

  9. 实现textview竖排文字效果

    文字效果

  10. 00004 - CentOS 7下安装pptp服务端

    主要配置步骤 1. 安装前检查系统支持 a. 在安装之前查看系统是否支持PPTP modprobe ppp-compress-18 && echo success 应该输出:succe ...