UVALive - 6275 Joint Venture (二分)

Posted Neord

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVALive - 6275 Joint Venture (二分)相关的知识,希望对你有一定的参考价值。

题意:

给定一个整数w, 然后给定n个数, 问有没有两个数之和恰好为w

分析:

现将n个数数组a[]排序, 然后用两个变量i,j指向开头和末尾, 如果a[i] + a[j] > w, i++, 如果a[i] + a[j] < w, j--。

直到相等或者i == j(找不到结果)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int len[1000000+7];
 4 int main(){
 5     int w, n;
 6     while(~scanf("%d", &w)){
 7         w *= 1e7;
 8         scanf("%d", &n);
 9         for(int i = 0; i < n; i++) scanf("%d", &len[i]);
10         sort(len, len + n);
11         int i = 0, j = n-1;
12         do{
13             if(len[i] + len[j] > w) j--;
14             else if(len[i] + len[j] < w) i++;
15         }while(len[i] + len[j] != w && i < j);
16         if(i < j) printf("yes %d %d\n", len[i], len[j]);
17         else printf("danger\n");
18     }
19 }

 

以上是关于UVALive - 6275 Joint Venture (二分)的主要内容,如果未能解决你的问题,请参考以下文章

dataassociator base类 enumerate_joint_hypotheses method简析

Joint.js 在新的克隆元素上触发拖动开始

joint python文件拼接

将 `emmeans::joint_tests()` 输出中的 p 值格式保留在针织 pdf 中

在 `emmeans::joint_tests` 输出中将“:”替换为“x”

Joint Deep Learning for Pedestrian Detection笔记