福大3月月賽 魔塔

2021-06-05 10:30:47 字數 1113 閱讀 8005

by---cxlove

又是乙個神題,給出乙個n*m的圖,上面有若干個怪,每個怪有一定的血,攻擊,防禦,以及攻擊獎勵,防禦獎勵。

玩過魔塔的童鞋應該很清楚,每打乙個怪,消滅他,可以獲得一定的攻擊防禦獎勵,消滅所有的怪,就算成功了。

此題是外掛程式摸式,無限血,不過也存在無法過關的情況,求消滅所有的怪,受到的最少傷害。

想當年cxlove通關救出了公主,哈哈。

處理起來很麻煩,首先列舉所有的怪為起點,bfs找可以到達的其它怪,鄰接陣儲存。

之後是狀態dp,dp[i][j],表示當前位置為i,當前狀態為j。

/*id:cxlove

prob:fju2073魔塔

data:2012.3.27-3.28

hint:bfs+狀態dp

*/#include#include#include#include#define inf 1<<30

using namespacestd;

struct nodemonster[11];

struct points,que[500*500+10];

struct monstermap[11];

char str[505][505];

int cnt;//怪獸的個數

int n,m,p;

int mat[15][15];

bool flag[505][505];

int way[4][2]=,,,};

int dp[11][1<<10]; //dp[i][j]表示目前處在第i個怪物的位置,已殺怪物的狀態為j時的最少傷害

void bfs(int k)

int sum[1<<10];

vectorstatus[11];

int main()

while(scanf("%d%d%d",&n,&m,&p)!=eof)

}map[0].pos=s;map[0].kind=0;

memset(mat,0,sizeof(mat));

for(int i=0;i<=cnt;i++)

/*for(inti=0;i<=cnt;i++)*/

for(int i=0;i<=cnt;i++)

for(int j=0;j<(1<

2018 1月 月賽總結

a題 n,m 1e18,p 1e5,lucas定理求組合數 include include include using namespace std typedef long long ll ll n,m,p 100003 ll f 100005 ll qpow ll a,ll b return an...

2023年春3月月賽題解

問題a string 1.題意 找出乙個字串在另乙個字串出現的次數 2.解法 此題解法較多,看 就應該知道了 第一種解法 include include using namespace std intmain cout count endl return0 第二種解法 include using n...

洛谷 9月月賽

題目描述 眾所周知,在一些特殊的部門,如果密碼能夠讓乙個人就解開,就會非常不安全。pic pre invoked code,預生成密碼 誕生了。這個密碼比較安全,是因為它必須由三個人保管。系統首先預先生成三個大整數a b c,計算出它們的與and 或or 和sum並儲存,然後將a b c分別告訴這三...