超時待解決 PTA 群群群訊息

2021-10-19 07:18:53 字數 1901 閱讀 8234

煩人奧,用樹做的仍然超時,暫時做個記錄。

如果看到這篇的朋友有思路麻煩大力踢我!謝謝!

思想就是建樹,遞迴,挖到底,返回。

眾所周知,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介面訪問類 ...