煩人奧,用樹做的仍然超時,暫時做個記錄。
如果看到這篇的朋友有思路麻煩大力踢我!謝謝!
思想就是建樹,遞迴,挖到底,返回。
眾所周知,yooq是圖論之神,lc是數論之神。 yooq正在看xx群裡的訊息。由於群裡面的訊息太多了,而且參差不齊,讓yooq看的很難受。不過,yooq在群裡有乙個特殊許可權,每一次操作可以使連續的若干個訊息的長度都增加1。但是由於yooq要和學妹聊天沒時間,所以他將這個特殊許可權交給你,希望你能幫他在最少的操作次數下將這些訊息的長度變成一樣的。
輸入格式:
第一行輸入樣例組數t(1<=t<=20)。 每組資料輸入乙個n(1<=n<=100000),代表有n條訊息。 接下來一行輸入n個正整數
輸出格式:
在一行中輸出使所有訊息的長度相等的最小操作次數。
輸入樣例:23
1 2 3
51 2 4 3 5
輸出樣例:25
提示
答案可能超過int範圍,請用long long
20%的資料,1<=n<=10
40%的資料,1<=n<=10^3
60%的資料,1<=n<=10^4
100%的資料,1<=n<=10^5
超時的**(演算法目前還有點問題,如果你看到這個括號以及內容,說明還沒改):
#include
#include
#include
long
long num,b[
100001];
long
long
dig(
long
long max,
long
long left,
long
long right)
else
if(left==0)
}//printf("r:%lld %lld %lld\n",ri,rl,rr);
return max-ri+
dig(ri,rr,rl);}
else
if(right==0)
}//printf("l:%lld %lld %lld\n",li,ll,lr);
return max-li+
dig(li,ll,lr);}
else
if(b[i]!=0
&&ri==
0&&b[max]
+right>=b[i]
&&b[i]
>b[max])if
(li&&ri)
}//printf("%lld %lld %lld\n",r1,r2,r1+r2);
return r1+r2;
}printf
("l&r l:%lld %lld %lld\nr:%lld %lld %lld\n"
,li,ll,lr,ri,rl,rr);}
intmain()
b[a]
=i;}
//printf("max:%lld\n",max);
printf
("%d\n"
,dig
(max,b[max]-1
,num-b[max]))
;}}
如果看到這篇的朋友有思路麻煩大力踢我!謝謝!
會用到的資料
/c++結構體排序
student stu[100];
bool cmp2(student a,student b)
sort(stu,stu+100,cmp2);
注:比較方法也可以放在結構體中或類中定義。
哨兵系統 釘釘群訊息推送
前言 之前哨兵系統提醒只是在前台使用聲音提醒,現在把訊息推送到值班人員群裡。避免值班人員在前台,專注寫 忽略了鈴聲,還有一點鈴聲確實有點打擾其他同事工作。所以下乙個版本哨兵系統,的確鬧鈴可以完全取消,替換成群訊息提醒。下面是釘釘群訊息推送的 目錄 頁面呼叫 業務實現 傳送群訊息 http介面訪問類 ...
Python實現釘釘群訊息推送
對於某些自動化任務執行結果反饋,使用釘釘機械人訊息替換繁瑣的郵件傳送方式使用釘釘機械人api,可以將任何你需要的服務訊息推送到釘釘 參考文件 釘釘機械人api介面文件 python import requests import json defsend dingding access token,u...
哨兵系統 釘釘群訊息推送
前言 之前哨兵系統提醒只是在前台使用聲音提醒,現在把訊息推送到值班人員群裡。避免值班人員在前台,專注寫 忽略了鈴聲,還有一點鈴聲確實有點打擾其他同事工作。所以下乙個版本哨兵系統,的確鬧鈴可以完全取消,替換成群訊息提醒。下面是釘釘群訊息推送的 目錄 頁面呼叫 業務實現 傳送群訊息 http介面訪問類 ...