鄭廠長系列故事 新聞淨化 hdu4534

2021-06-14 16:57:49 字數 2163 閱讀 7809

ac自動機+dp, 此題有倆個優化目標:最少字母使文章符合要求,並讓加成分之和盡可能高,可以把倆個目標合併成乙個,即讓刪除乙個字母所獲得的加分為乙個很小的值(此題可以取-200000),這樣優化的目標即變為是的加分最大,最後再把結果分離即可。

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using std::priority_queue;

using std::vector;

using std::swap;

using std::stack;

using std::sort;

using std::max;

using std::min;

using std::pair;

using std::map;

using std::string;

using std::cin;

using std::cout;

using std::set;

using std::queue;

using std::string;

using std::istringstream;

using std::make_pair;

using std::getline;

using std::greater;

using std::endl;

using std::multimap;

typedef long long ll;

typedef unsigned long long ull;

typedef pairpair;

typedef multimapmmap;

const int maxn(1610);

const int sigma_size(26);

const int maxm(110);

const int maxe(4000010);

const int maxh(18);

const int infi((int_max-1) >> 1);

const int mod(9999991);

const ull lim(1000000000000000ull);

struct ac

inline int idx(char temp)

void insert(char *s, int tv, int ts)

u = ch[u][id];

}val[u] |= tv;

score[u] += ts;

}int que[maxn];

int front, back;

void construct()

}while(front < back)

else

ch[cur][i] = ch[f[cur]][i];}}

}};ac ac;

int table[2][maxn][1 << 9];

char str[110];

void solve(int len, int m1, int m2)

cur ^= 1;

last ^= 1;

}int ans = -infi;

for(int i = 0; i < ac.size; ++i)

ans = max(ans, table[last][i][lim]);

if(ans == -infi)

printf("banned\n");

else

}char rec[110][20];

int recv[110];

int main()

m2 = m1;

m1 = 0;

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

ac.construct();

scanf("%s", str);

printf("case %d: ", ++n_case);

solve(strlen(str), m1, m2);

}return 0;

}

鄭廠長系列故事 體檢

input 輸入的第一行為乙個正整數t,表示有t組測試資料 接下去有t組測試資料,每組測試資料佔一行,包含三個整數n,k,m,n表示員工的人數,k表示體檢的專案數,m表示醫生的人數。technical specification t 1000 1 n 100 1 k 10 1 m 100 outpu...

HDU 4539 鄭廠長系列故事 排兵布陣

其實主要修改的只有2個地方,因為這個地所要求的是曼哈頓距離為2,所以在轉移上一層狀態的時候應該判斷是否左右相鄰。同時上層與上上層之間也同樣需要做這樣乙個判斷。include include includeusing namespace std const int maxn 202 int dp ma...

hdu 4529 鄭廠長系列故事 N騎士問題

題目 狀態壓縮dp 好開心,終於會寫簡單的狀態dp了,雖然一開始用long long mle了 雖然第二次陣列開小了,開成dp 8 8 1 8 1 8 了 雖然二進位製用的還很戳,比如求1的個數 雖然.include include includeusing namespace std int t,...