51NOD1090 3個數和為0

2021-08-10 17:21:23 字數 457 閱讀 5650

這道題的基本思想是尺取,題目的原型大概是給出一組數,讓你找到和值為特定值的兩個數的組合。(尺取法:先排序,分別用乙個first指標指向第乙個數,last指標指向最後乙個數,如果first指著的數+last指著的數《特定值,last不動,first++.。反之,first不動,last--,直到last和first相鄰。)這裡不過多了乙個k-前面的值,然後再在剩下的值裡面找和值為k-前面的值的組合。

#include#include#include#includeusing namespace std;

const int maxn=1000+5;

int n;

int a[maxn],vis;

void ruler(int t,int k)

}}int main(){

while(scanf("%d",&n)!=eof){

vis=0;

for(int i=0;i

51nod 1090 3個數和為0

1090 3個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小...

51nod 1090 3個數和為0

1090 3個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和 0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小...

51Nod 1090 3個數和為0

給出乙個長度為n的無序陣列,陣列中的元素為整數,有正有負包括0,並互不相等。從中找出所有和等於0的3個數的組合。如果沒有這樣的組合,輸出no solution。如果有多個,按照3個數中最小的數從小到大排序,如果最小的數相等則按照第二小的數排序。input 第1行,1個數n,n為陣列的長度 0 n 1...