HDU 2017 多校訓練賽1(賽上 補題)

2021-08-04 07:46:58 字數 1781 閱讀 4276

題意:求2^m -1 =>10^k 已知m 求最大的k

思路:賽上沒有多想就開始找規律。。然後浪費了一些時間還wa了,最後改過了。

後來看題解 發現就是個簡單的公式,一行**嗚嗚嗚嗚

10^k<=2^m -1

log(10)10^k<= log(10) 2^m -1

—>k<=mlog2/log10

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int main()

}

題意:給n個由小寫字母組成的字串,可以給每個字元賦值0~25,然後把這些字母轉換成26進製的數,求n個字串加起來的最大值。

思路:賽上的想法對每個字母進行權值計算。開乙個陣列w[26][1e5],記錄每乙個字母在字串的第i位(從後往前數)出現的次數,如果查過26就進一位。然後排序得到每個數應該給多大的權值。

但是這個排序寫起來很複雜。。一開始是各種t然後是wa。。。最後發現前導0沒有判斷。。。

我賽上沒有寫,補題++;

題意:題意很難描述。。。。理了半天才理清楚意思,發現是個圖論。

思路:在a中找迴圈節(也就是圖論裡的環),b中找迴圈節,a中迴圈節大小如果是b中某個迴圈節大小的倍數,那麼b中的這個迴圈節就可以巢狀到a中。

賽上:可以說肥腸的遺憾了,,,也可能是狀態不好什麼的,其他的部分都想對了,但是不是倍數。。而以為是兩個迴圈節必須數量相同。。。啊zz如我

賽後改了乙個小地方就a了

#include 

#include

#include

#include

#include

#include

using

namespace

std;

const

long

long mod=1e9+7;

int a[100005],b[100005];

bool used[100005];

int num[100005];

vector

g[100005];

int dfs(int x)

}return tot;

}int main()

for(int i=0;iif(used[i]==0)

}// for(int i=1;i<=4;i++) coutg[i].push_back(u);

}

memset(used,0,sizeof used);

long

long ans=1;

for(int i=0;iif(used[i]==0)

}ans=(ans * y) % mod;}}

printf("case #%d: %lld\n",++cas,ans);

}}

題意見上

思路:全場題之一,簡單找規律。

#include 

#include

#include

#include

#include

using

namespace

std;

int main()

if(k<=n-1+n-2)

cout

<}

}}

HDU 2017 多校訓練賽1 補題

acm模版 比賽不是特別順利,第一次打多校,感覺還是英語問題很大,雖然編碼水平也很渣 比賽時做了四道,有些心痛了。賽後補補題吧,先將賽中的四道題寫一下,佔佔流量,然後慢慢新增補的題吧!水題,就是乙個公式。include include using namespace std int m int ma...

HDU 2017 多校訓練賽5 補題

acm模版 我發現,多校是越來越不能打了 太 bu g bug 了,一場比一場難,這場又是只 a a 了三道題,啥也做不了了,一場看熱鬧的娛樂局。圖論 實際上就是乙個找找規律的構造題。dp 很容易看出來是 dp role presentation style position relative dp...

HDU 2017 多校訓練賽9 補題

acm模版 這場比賽運氣挺好,水了四道題,儘管很多人做了五道,但是我挺知足了 貌似第六題是最短路,沒有好好看它,有些可惜了,明天抽空補補吧 lca 主席樹 很考驗細心與耐心的一道題。dfs 正反向搜尋搞搞。貪心 利用 ma p map 進行離散優化,然後貪心策略即可。dp 乙個正規表示式的 dp d...