2016-11-17試題解題報告
by shenben
水災(sliker.cpp/c/pas)1000ms 64mb
大雨應經下了幾天雨,卻還是沒有停的樣子。土豪ccy剛從外地賺完1e元回來,知道不久除了自己別墅,其他的地方都將會被洪水淹沒。
ccy所在的城市可以用乙個n*m(n,m<=50)的地圖表示,地圖上有五種符號:「. * x d s」。其中「x」表示石頭,水和人都不能從上面經過。「.」表示平原,ccy和洪水都可以經過。「*」表示洪水開始地方(可能有多個地方開始發生洪水)。「d」表示ccy的別墅。「s」表示ccy現在的位置。
ccy每分鐘可以向相鄰位置移動,而洪水將會在ccy移動之後把相鄰的沒有的土地淹沒(從已淹沒的土地)。
求ccy回到別墅的最少時間。如果聰哥回不了家,就很可能會被淹死,那麼他就要膜拜**大神漲rp來呼叫直公升飛機,所以輸出「orz hzwer!!!」。
輸入檔案sliker.in
輸出檔案sliker.out
input
3 3d.*
….s.
output
3input
3 3d.*
…..s
output
orz hzwer!!!
input
3 6d
…*..x.x..
….s.
output
6某種數列問題(jx.cpp/c/pas) 1000ms 256mb
眾所周知,chenzeyu97有無數的妹子(阿掉!>_<),而且他還有很多惡趣味的問題,繼上次糾結於一排妹子的排法以後,今天他有非(chi)常(bao)認(cheng)真(zhe)去研究乙個奇怪的問題。有一堆他的妹子站成一排,然後對於每個妹子有乙個美麗度,當然美麗度越大越好,chenzeyu97妹子很多,但是質量上不容樂觀,經常出現很多美麗度為負數的妹子(喜聞樂見),chenzeyu97希望從一排妹子裡找出3隊連續的妹子,使她們的美麗度和最大。注意,乙個妹子不能被編入多個隊伍而且一定要拿出三隊,不然czy會閒著沒事做~。
簡單滴說就是:
給定乙個數列,從中找到3個無交集的連續子數列使其和最大。
【輸入檔案】
第一行乙個數n,表示數列長度。
接下來有n行,每行乙個數,第i行為第i個數。
【輸出檔案】
僅有乙個數,表示最大和。
【樣例輸入】jx.in
10-123
-401-6
-11-2【樣例輸出】jx.out
7【樣例說明】
第一隊妹子取2,3。
第二隊妹子取0,1。
第三隊妹子取1。
【資料範圍】
請大家放心,雖然chenzeyu97妹子無數,但是這次他叫來的個數n是有限的。=v=
對於30%的資料,妹子數不大於200。
對於60%的資料,妹子數不大於2000。
對於100%的資料,妹子數1000000。
而且,由於chenzeyu97沒有ccr那樣的影響力,所以他的妹子選完的最大美麗度和不超過maxlongint。(注:ccr隨便選就爆long
long,因為他是把妹狂魔=v=)。
密碼鎖1000ms 512mb
input: password.in
output: password.out
【題目描述】
hzwer
有一把密碼鎖,由
n個開關組成。一開始的時候,所有開關都是關上的。當且僅當開關
x1,x2,x3,...xk
為開,其他開關為關時,密碼鎖才會開啟。
他可以進行
m種的操作,每種操作有乙個
size[i]
,表示,假如他選擇了第
i種的操作的話,他可以任意選擇連續的
size[i]
個格仔,把它們全部取反。(注意,由於**大神非常的神,所以操作次數可以無限
>_<
)本來這是乙個無關緊要的問題,但是,**大神不小心他的錢丟進去了,沒有的錢他**能逃過被
chenzeyu97
ntr的命運?
>_<
於是,他為了虐爆
czy,也為了去泡更多的妹子,決定開啟這把鎖。但是他那麼神的人根本不屑這種」水題
」。於是,他找到了你。
你的任務很簡單,求出最少需要多少步才能開啟密碼鎖,或者如果無解的話,請輸出-1。
【輸入格式】第1
行,三個正整數n,
k,m,如題目所述。第2
行,k個正整數,表示開關
x1,x2,x3..xk
必須為開,保證
x兩兩不同。
第三行,
m個正整數,表示
size[i]
,size
可能有重複元素。
【輸出格式】
輸出答案,無解輸出-1。
【樣例輸入1】
10 8 2
1 2 3 5 6 7
8 93 5
【樣例輸出1】
2【樣例輸入2】
3 2 1
1 23
【樣例輸出2】
-1【資料規模】
對於50%
的資料,1≤
n≤20,
1≤k≤
5,1≤
m≤3;對於另外
20%的資料,1≤
n≤10000,1
≤k≤5,1≤m
≤30;
對於100%
的資料,1≤
n≤10000,1
≤k≤10
,1≤m
≤100
。t1**:
//寒假西月棟出的原題
#include#include
#include
using
namespace
std;
const
int n=55
;char
a[n][n];
bool
vis[n][n];
intn,m,ex,ey,d[n][n],dis[n][n];
struct
node
};const
int dx=;
const
int dy=;
inline
bool inside(int &x,int &y)
void bfs(int sx,int
sy) }}}
}}void spfa(int sx,int
sy) }}}
}}#define name "sliker"
intmain()
for(int i=1;i<=n;i++)}}
for(int i=1;i<=n;i++)
if(a[i][j]=='d'
) }
}if(dis[ex][ey]<0x3f3f3f3f) printf("
%d\n
",dis[ex][ey]);
else puts("
orz hzwer!!!");
fclose(stdin);
fclose(stdout);
return0;
}
t2**:
#include#include#include
using
namespace
std;
inline
intread()
while(ch>='
0'&&ch<='9')
return f?x:-x;
}const
int n=1e6+10
;int
n,a[n];
int dp[n][4][2
];//
3個最大連續欄位和
#define name "jx"
intmain()
}printf(
"%d\n
",max(dp[n][3][0],dp[n][3][1
]));
fclose(stdin);
fclose(stdout);
return0;
}
t3**:
/*棄療ing
輸出-1 10分
*/
2016 11 12試題解題報告
2016 11 1 2試題解題報告 by shenben 本解題報告解析均為100分解題思路。t1列舉 乘法原理 容斥原理 滾動列舉最短的s串在t串的頭和尾,然後用乘法原理當前的x。ans x 注意s串是類似 aabb 這種情況 t2 dp 第一問 根據題目中的偽 乙個點一定會與位於這個點之後並且不...
濟南 1031試題解題報告
濟南 1031試題解題報告 by shenben 本解題報告解析均為100分解題思路。題意自行讀題。總結題意太累了 解析 打錶出所有 k 其中 k mod 10000000 0 詢問時直接找到已知的答案,並計算不超過 10000000 就能找到答案。解析 先將 ai進行排序。令f i 表示1 i 中...
Mountains CVTE面試題 解題報告
題目大意 用乙個陣列代表群山的高度。高度大的地方代表山峰,小的地方代表山谷。山谷可以容水。假設有一天下了大雨,求群山中總共可以容納多少水?如圖所示情況,a代表該陣列,總共可以容納5個水。解題思路 初步想法可以列舉每乙個單位,判斷是否能放水。這種做法的複雜度為o n 2 h 其中h為陣列最大值,n為陣...