第九屆湖南省大學生程式設計競賽部分題解

2021-07-16 23:43:18 字數 3897 閱讀 4759

前言:這套題目到處都找不到,csu上面也提交不了。最後在湖南師大oj找到了,可是這個師大oj實在是不好用,每次提交都要重新登入不說,還不支援lld,還我浪費好多時間去改wa。

思路:資料量比較小,直接暴力求解即可。

**:

#include #include #include #include #include #include #include using namespace std;

char s[1050];

int pos[1050];

int check(int b,int t,int k)

return 1;

}int main()

else if(s[i]>='a'&&s[i]<='z')

int ans=1,id=0;

for(int i=0; i

思路:細心模擬題,陣列模擬鍊錶的操作即可,第三個操作極其麻煩,要細心點。

對於第四個操作,其實注意x和y是原序列的下標,所以序列反了和沒反對於1,2操作只是x插在y的左右反向反了而已,第三個操作就無影響了

題意:有n個城市和m條路,現在要從s到t,保證可以走到

所以得路都有乙個通過時間,但是路本身會開啟a時間,關閉b時間這樣反覆迴圈,求從s到t的最短時間

思路:一開始以為很複雜,其實就是乙個最短路的問題,只不過加了點限制而已,不會影響s到t的最短距離。

用dijkstra或者spfa都可以

思路:對於某個位置只要往左右兩邊找到最近的名字,比較一下距離即可

思路:每一次漲潮其實就是樹狀陣列的一次區間變化,那麼我們每次都去區間更新,最後求值即可

題意:給兩個數x,y

再給乙個3*10的矩陣,第一行表示在數的末尾加上0~9所需要的花費

第二行表示當前數加上0~9所需要的花費

第三行表示當前數*0~9所需要的花費

問從x->y的最小花費,以及在最小花費的情況下的最小操作次數

思路:dp[i]表示湊到i這個數所需要的最小花費,三重迴圈去轉移即可。

轉移的過程中用乙個num陣列去記錄最小操作次數即可

思路:直接暴力列舉a和b即可

**:

#include #include #include #include #include using namespace std;

int main()

}printf("case %d: %i64d\n",tot++,ans*2);

}return 0;

}

2018湖南省大學生程式設計競賽總結

先說戰績,3題銅牌滾粗。比賽開始前五分鐘就發了紙質檔題面,hsx一看發現a題是個水題,立馬就想到了思路 然後比賽開始五分鐘後1發ac,然後hsx去攻雅禮已經a了的d題 看榜發現湖大有個隊第22秒就a了 手速真他媽快 還發現有人a了b題和c題,我看b題,陽哥看c題,hsx攻d題,我讀懂了題意但是沒有什...

湖南省第九屆大學生計算機程式設計競賽 高橋和低橋

有個腦筋急轉彎是這樣的 有距離很近的一高一低兩座橋,兩次洪水之後高橋被淹了兩次,低橋卻只被淹了一次,為什麼?答案是 因為低橋太低了,第一次洪水退去之後水位依然在低橋之上,所以不算 淹了兩次 舉例說明 假定高橋和低橋的高度分別是5和2,初始水位為1 第一次洪水 水位提高到6 兩個橋都被淹 退到2 高橋...

「浪潮杯」第九屆山東省ACM大學生程式設計競賽

aanagram 進入討論324 620 bbullet 進入討論56 213 二分 二分圖匹配 include include includeusing namespace std const int maxn 510 const int inf 0x3f3f3f3f int n,vis maxn...