比賽**:
這場躺的很安詳 演的很開心
兩個小時跟著隊友混了六題
最後開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...