题意:给一个集合,求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. 【转】用python比对数据库表数据的脚本

    最近在做一个数据库异构复制的项目,客户表示需要一个数据比对的工具,我就自己写了一个异构数据库的比对python脚本.这个比对脚本只能比对数量,不能比对具体的记录.使用的sql语句也是最基础的selec ...

  2. js中的 Table 对象

    Table 对象Table 对象代表一个 HTML 表格.在 HTML 文档中 <table> 标签每出现一次,一个 Table 对象就会被创建. Table 对象集合cells[]    ...

  3. IDEA运行tomcat8.5.35源代码

    前提环境,安装和配置好java1.8+环境,maven,IDEA 1.下载Tomcat源代码:https://tomcat.apache.org/download-80.cgi#8.5.35 2.创建 ...

  4. java中的自定义注解的使用

    https://www.cnblogs.com/acm-bingzi/p/javaAnnotation.html

  5. SpringSecurity-ConcurrentSessionFilter的作用

    ConcurrentSessionFilter主要有两个功能: (1)每次request时调用SessionRegistry的refreshLastRequest(String)更新session的最 ...

  6. STL基础--容器

    容器种类 序列容器(数组,链表) Vector, deque, list, forward list, array 关联容器(二叉树),总是有序的 set, multiset根据值排序,元素值不能修改 ...

  7. C/C++基础--模板与泛型编程

    模板参数 函数模板,编译器根据实参来为我们推断模板实参. 模板中可以定义非类型参数,表示一个值而非一个类型,这些值必须是常量表达式,从而允许编译器在编译时实例化模板. 非类型参数可以是整型,或者一个指 ...

  8. VisualSVNServer 无法启动 could not log pid to file

    启动SVN时候报了错误,然后查看日志发现报了如下错误 VisualSVNServer.exe: could not log pid to file C:/Windows/ServiceProfiles ...

  9. P1616疯狂的采药

    传送 它不是可爱的01背包了!!!这个题中一种药可以采无限次!!! 它进化成了完全背包.完全背包中的内循环从m到v[i]改成了从v[i]到m 既然如此,代码如下: #include<iostre ...

  10. jquery zTree搜索高亮的例子

    思路: 搜索的时候发请求到后台,后台根据关键字找到匹配的节点,并将这些节点添加一个标志light: 后面就根据这个light为true就高亮,false就不高亮: 后台将这些节点返回到前台,前台展示: ...