hdu5335 已知起點終點 找最小的01串

2021-07-04 06:18:04 字數 975 閱讀 1181

wa了27次,終於過了

先找到通過0可以到達的最遠的1的位置,答案的長度就固定了,然後對每個斜對角線進行掃瞄,有0就走0,否則走1

#pragma comment(linker, "/stack:102400000,102400000")

#include #include#include#include#include#include#include#include#define lson l,m,rt<<1

#define rson m+1,r,rt<<1 | 1

using namespace std;

const int n=1e3+10;

int inf=0x7f7f7f7;

int t,n,m,k;

int tot[2];

const int mod=1e9+7;

char a[n][n];

char str[n*n];

struct node;

node vec[n*n];

int num;

node q[n*n] ;

node ans[2][n];

int now;

bool vis[n][n];

bool ok;

int cnt;

int dir=;

void bfs();

vis[1][1]=true;

while(lcnt)else if(x+y==cnt)

continue;

}for(int i=0;i<8;);

vis[dx][dy]=true;}}

}void solve()

int len=n+m-cnt+1;/*答案的長度是已知的*/

str[0]='1';

str[len]='\0';

int step=0;

memset(vis,0,sizeof vis);

for(int i=0;i

DTOJ 5335 王國內戰 劍鬼 魔法陣

題目鏈結 多個環,最後一定是剩下中間那條邊。因為雙方都可以構造出不讓對方更優的結果,且兩者等價,所以一定是中位數。但是偶環中位數不唯一,所以貪心地按照兩條邊和來選取。include define n 100005 typedef long long ll using namespace std in...

hdu1285 hdu4857 拓撲排序

一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...

樹狀陣列 hdu2689 hdu2838

題意 給定乙個正整數n,和乙個1 n的乙個排列,每個數可以和旁邊的兩個數的任意乙個交換,每交換一次總次數就要加一,問將這個排列轉換成乙個遞增的排列需要多少次交換?題意可以轉換成求這個排列的逆序對數。include include include include using namespace std...