FOJ月賽 2023年3月 留坑

2021-07-02 22:59:26 字數 3249 閱讀 1867

解法:把每個壓縮的字元展開,然後kmp即可

#include 

#include

#include

#include

#include

using

namespace

std ;

const

int n = 1e6 + 11 ;

const

int m = 1e3 + 11 ;

char str1[n] , str2[m] ;

int len1 , len2 ;

char ss[m] ;

int jump[m] ;

void getjump() else j = jump[j] ;

}}bool check() else j = jump[j] ;

}return

false ;

}int main() else

char tmp = ss[i-1] ;

i = id ;

if(ret > len2) ret = len2 ;

while(ret--) }}

len1 = cnt ;

if(check()) printf("true\n") ;

else

printf("false\n") ;

}}

#include 

#include

#include

#include

#include

using

namespace

std ;

const

int n = 1e3 + 11 ;

int arr[n] ;

int n ;

int lowbit(int x)

void update(int x ,int d)

}int query(int x)

return ans ;

}void init()

}int fun(int x)

update(r , -1) ;

return r ;

}int main()

}}

求覆蓋大於一次的面積

#include 

#include

#include

#include

#include

using

namespace

std ;

const

int n = 2e5 + 11 ;

typedef

long

long ll ;

struct line

line(int a ,int b , int c , int dd)

friend

bool

operator

<(const line& a , const line& b)

};int n ;

line line[n] ; int nline ;

int num[n] ; int nn ;

struct segment

void up(int u) else

if(cover[u] == 1) else

}void build(int u , int l , int r)

int mid = (l+r)>>1 ;

build(u<<1 , l , mid) ;

build(u<<1|1 , mid , r) ;

len[u] =len[u<<1] + len[u<<1|1] ;

up(u) ;

}void update(int l , int r , int d)

void _update(int u , int l , int r , int d) else

if(cover[u] == 1) else

}else

return ;

}int mid = (l+r)>>1 ;

if(x1 < mid) _update(u<<1 , l , mid , d) ;

if(y1 > mid) _update(u<<1|1 , mid , r , d) ;

up(u) ;

}}seg;

void init()

sort(line , line+nline) ;

sort(num , num+nn) ;

nn = unique(num , num+nn)-num ;

}int at(int x)

void work()

printf("%i64d\n" , area) ;

}int main()

}

解法:bfs ,注意當羊為0的時候,狼可以大於羊;每次必須運送大於1只動物

#include 

#include

#include

#include

#include

#include

using

namespace

std ;

bool vis[201][201][2] ;

struct node ;

int x , y , n ;

void work()

memset(vis , 0 , sizeof(vis)) ;

node fro ;

fro.wolf = y , fro.sheep = x , fro.side = false;

fro.t = 0 ;

vis[x][y][0] = true ;

queue

que ;

que.push(fro) ;

while(!que.empty())

++fro.t ;

int wolf = fro.wolf , sheep = fro.sheep ;

int other_wolf = y - wolf , other_sheep = x - sheep ;

for(int i = 1 ; i <= sheep ; ++i)

}for(int j = 1 ; j <= wolf && j <= n ; ++j)

}printf("-1\n") ;

}int main()

}

FOJ 2014 3 有獎月賽

由於跑a 區去面試的原因,這次比賽沒參加,回來時已經四點多了,過了 h題,然後 d題交了一發,沒考慮乙個盟國只有乙個國家的情況,wa了一次,之後就結束比賽了 具體說下每道題吧。a.檔案系統 簡單模擬題。把題目意思理清楚就比較簡單了。每個組給乙個編號,並記錄它的成員,然後對每個檔案進行判斷就可以了。徐...

隨感 2023年3月小結

總是寫了一些感想,默默的收藏,沒有發表。但是,我想肯定有人和我有所共鳴,所以還是和大家分享。進入大學,已經7個月了,乙個多學期,我時常在想,自己到現在都收穫了什麼。知識,經驗,好的習慣,積極向上的朋友圈,好的心態.仔細想想真沒有什麼可以值得驕傲的,同其他人一樣,虛度了大把的美好青春,真是想想都對不起...

2023年春3月月賽題解

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