日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
每日一題(有點(diǎn)難2022/11/30)12/3-創(chuàng)新互聯(lián)

4.3 提升題 - B Distance of Triples

公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出吳忠免費(fèi)做網(wǎng)站回饋大家。

原題目為英文,不好看,我放翻譯過的.

題意:

根據(jù)谷歌翻譯:給定(自己輸入)三個集合s1,s2,s3,定義D(a,b,c)=|a-b|+|b-c|+|c-a|,

假設(shè)其中a,b,c分別來自三個集合s1,s2,s3,求出使D最小且三元組(a,b,c)大的a,b,c的值和對應(yīng)的D。

思路:

在數(shù)軸上點(diǎn)出幾個個任意點(diǎn)a,b,c,a1,a2,c1,c2如下

—a1——————a——————a2———————b————c2———c—————c1——

假設(shè)它們的關(guān)系如上,考慮某一個b。容易發(fā)現(xiàn),中間的b只要在a和c之間移動,不改變D的大小,所以我們只需要考慮a和c即可。如果a→a1或c→c1,D變大,只有a和c在數(shù)軸上向b靠攏,且不越過b才會使D變小。故有一個思路如下:

思路一、

找到元素最少的數(shù)組(這一部我實(shí)現(xiàn)起來有點(diǎn)麻煩,就不搞了),假設(shè)為s2,把s1和s2排序,固定b,找到b在s1和s2中的位置,以便找到數(shù)軸上距離b最近的a和c,這樣處理s2中每一個b,比較一下D(a,b,c)即可。

因?yàn)樵谧龅耐局形艺业搅宋宜悸返膯栴},有可能對某個b在s1和s3中找不到比b大或小的數(shù);

而且寫好的程序錯誤也很多,就沒做了,過幾日看懂了標(biāo)答再補(bǔ)發(fā),最近在預(yù)習(xí)數(shù)據(jù)結(jié)構(gòu)和學(xué)習(xí)遞歸函數(shù)

//根據(jù)谷歌翻譯:給定數(shù)集 s1,s2,s3,要求(a∈s1,b∈s2,c∈s3)|a?b|+|b?c|+|c?a|的最小值,|s1,s2,s3|≤10^4
#include
#include
#include
#define max 10000
int Dis(int a,int b,int c)
{
? return abs(a-b)+abs(b-c)+abs(a-c);
}
int find(int arr[],int x,int len)//尋找x在數(shù)組arr中的位置(分別傳入數(shù)組,待查找的值,數(shù)組長度)
{
? int a, b, c;
? a = 0, c = len;
? while (1)
? {
? b = (a + c) / 2;
? if (x == arr[b] || abs(a - c) == 1) return b;
? else if (x >arr[b]) a = b;
? else if (x< arr[b]) c = b;
? }
}
void swap(int* a, int* b)
{
? int temp = *a;
? *a = *b;
? *b = temp;
}
void func(int arr[], int len)//選擇排序,升序
{
? int i, j;

? for (i = 0; i< len - 1; i++)
? {
? int min = i;
? for (j = i + 1; j< len; j++)
? if (arr[j]< arr[min])
? min = j;
? swap(&arr[min], &arr[i]);
? }
}
int main()
{
? char check=0;
? int i=0,j=0,n1,n2,n3,s1[max]={0},s2[max]={0},s3[max]={0},a,b,c,D,a2,b2,c2;
? scanf("%d %d %d",&n1,&n2,&n3);
?while (check != '\n')
?{
??? ?scanf("%d", &s1[i++]);
??? ?check = getchar();
?}
? check=0,i=0;
?while (check != '\n')
?{
??? ?scanf("%d", &s2[i++]);
??? ?check = getchar();
?}
? check=0,i=0;
?while (check != '\n')
?{
??? ?scanf("%d", &s3[i++]);
??? ?check = getchar();
?}
? //固定s2,把s1和s3排序,選擇比b小的a比b大的c
? func(s1,strlen(s1));
? func(s3,strlen(s3));
? //假設(shè)第一個b是要求答案
? b=s2[0];
? n3=find(s3,b,strlen(s3));
? a=s1[n3];
? if(s3[n3]==b||n3==strlen(s3)) c=b;
? else c=s3[n3+1];
? D=Dis(a,b,c);
? for(i=1;i ? {
? b2=s2[i];
? n3=find(s3,b2,strlen(s3));
? a2=s1[n3];
? if(s3[n3]==b2||n3==strlen(s3)) c2=b2;
? else c2=s3[n3+1];
? if(D>Dis(a2,b2,c2))
?{
?a=a2,b=b2,c=c2;
?}
? }
? printf("MinD(%d,%d,%d)=%d",a,b,c,D);
? return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


本文名稱:每日一題(有點(diǎn)難2022/11/30)12/3-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://www.dlmjj.cn/article/dijops.html