2021湖南多校對抗賽第一場 補題

2021-10-22 22:44:29 字數 3461 閱讀 7293

比賽**:

這場躺的很安詳 演的很開心

兩個小時跟著隊友混了六題

最後開h題 讀題乙個半小時 wa乙個半小時 時間就沒了

最後發現是字串匹配的時候出現了問題 人都wa傻了

待補:a,b

每個檔案由包名和方法名組成

方法名是「program」的檔案可以自己啟動並且開始呼叫他的下級檔案

給出每個檔案能被哪些檔案呼叫

問最後有多少個檔案沒有被呼叫過

題面出的非常花裡胡哨而且也非常難讀懂(可能是我英語太菜的原因)

但其實可以看作乙個圖論題

每個檔案看作乙個點 呼叫關係則為乙個單項邊

將所有方法名是「program」的檔案連至乙個源點

從源點開始遍歷圖

最後判斷有多少點沒有跑到就行

比賽的時候一直wa11

賽後看了下資料 原來是有檔案的方法名是「programprogram」

而我只判斷了方法名最後七位是否等於「program」

wa了二十發 頭疼死 這種錯誤大概也只有錯過一次 才會記得清楚

#pragma comment

(linker,

"/stack:102400000,102400000"

)#include

#include

#include

#include

#include

#include

#include

#include

#include

#include <

set>

#include

#define pi 3.1415926535898

#define ll long long

#define lson rt<<

1#define rson rt<<1|

1#define eps 1e-6

#define ms

(a,b)

memset

(a,b,

sizeof

(a))

#define legal

(a,b) a&b

#define print1 printf

("111\n"

)#define pb

(x)push_back

(x)using namespace std;

const int maxn =

2e5+10;

const int inf =

0x3f3f3f3f

;const ll llinf =

1e17+10

;const ll mod =

1e9+7;

int n,tot,first[

400+10]

,cot;

mapmp;

string s;

int vis[

400+10]

;struct node

e[maxn]

;void

add(int u,int v,int w)

void

check

(string a)

}void

dfs(int x,int fa)

}int main()

cin>>x;

for(int j=

1; j<=x; j++)if

(str!=s)

add(mp[str]

,mp[s],1

);}}

//printf("%d\n",cot);

dfs(0,

0); int ans=0;

for(int i=

1; i<=tot; i++)}

cout

}

給出乙個圖 問從1到n是否有多條最短路

其實就是把最短路的演算法變形以下

判一下dis[to]==e[i].v+dis[now]的時候加一

然後每次維護當前最短值的次數就好了

#pragma comment

(linker,

"/stack:102400000,102400000"

)#include

#include

#include

#include

#include

#include

#include

#include

#include

#include <

set>

#include

#define pi 3.1415926535898

#define ll long long

#define lson rt<<

1#define rson rt<<1|

1#define eps 1e-6

#define ms

(a,b)

memset

(a,b,

sizeof

(a))

#define legal

(a,b) a&b

#define print1 printf

("111\n"

)#define pb

(x)push_back

(x)using namespace std;

const int maxn =

1e6+10;

const int inf =

0x3f3f3f3f

;const ll llinf =

1e17+10

;const ll mod =

1e9+7;

int a[maxn]

,first[maxn]

;int len;

int vis[maxn]

,ans[maxn]

;ll dis[maxn]

;int n,m,k;

struct node

e[maxn*2]

;//這裡忘記乘二了一直t。。。。

void

add(int u,int v,int w)

struct point

bool operator <

(const point &x)

const};

void

dij(int s)

else

if(dis[rt]

+e[i]

.w==dis[id])}

}}int main()

for(int i=

1;i<=m;i++

)dij(1

);if(ans[n]

>1)

printf

("yes\n");

else

printf

("no\n");

}

湖南多校對抗賽 A A

題意 有一些長方形,面積為1 x或者2 x,現在要算出能把這些 長方形全部包含起來的長方形的大小 2 m 簡單來說就是 給你乙個寬為2的長方形,求出長最小為多少時能把全部長方形 包含起來。解法 因為大的長方形寬始終為2,而其他長方形寬為1 2。即當寬為2的 長方形直接放入 即長度直接加上對於得長度 ...

湖南多校對抗賽 D D

include 題意 有3個只包含大寫字母的字串a,b,c。問能不能從 從a,b中分別拿出n 2個字元組成c串。n為a的長度 解法 直接統計26個大寫字母在a,b,c串中出現的個數,當c串中出現字母時,則看a,b串中這個字母出現的 次數之和 a,b這個字母最多為n 2 是否大於c對應 的個數,否則不...

湖南多校對抗賽(csu 1560)

簡單的bfs搜尋題,對每個初始的水滴依次擴充套件,當達到規定步數時跳出。這題還是有坑點的,對於每個初始的水滴,已經訪問過的位置不再訪問,但是對於不同的水滴,別的水滴已經訪問過的,對於當前水滴來說可能還要訪問,才能使擴充套件的範圍最大。include include include include i...