2018牛客多校7

2021-08-22 14:53:42 字數 2179 閱讀 7934

有點難度啊。。。

a minimum cost perfect matching

隊友搞的 應該不難 。。。。把二進位制寫出來看看

#includeusing namespace std;

#define ll long long int

#define lson rt<<1,l,m

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

int res[500500];

int s[30];

int main()

}for(int i=0;ij sudoku subrectangles

先處理每個元素向右向下擴張的最大範圍,因為最多只有52所以只有1000*1000*104的複雜度。

然後就把每乙個元素作為乙個子矩陣的左上角,計算一下符合的子矩陣有多少即可。。

注意ans需要是long long 。。。。

#includeusing namespace std;

char s[1111][1111];

int heng[1111][1111];

int shu[1111][1111];

int vis[222];

int zs[1111][1111];

int main()

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

int pc=1;

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

vis[s[i][k]]=pc;

}heng[i][j]=k-j;

pc++;

for(k=i;k<=min(n,i+51);k++)

vis[s[k][j]]=pc;

}shu[i][j]=k-i;

} }long long ans=0;

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

int len=heng[i][j];

for(int k=i+1;k<=i+shu[i][j]-1;k++)

if(len<=0)

break;

ans+=len;

}} }

cout

dfs 如果遇到全變為0的情況,在這三種操作下是不會再出現1了,所以遇到這種情況就不用再繼續dfs了。加上這個剪枝就好了。

#includeusing namespace std;

char s[(1<<18)];

int da[(1<<19)];

int ans=0;

void dfs(int x)

int len=(1<>n;

cin>>s;

int len=(1構造。**:

首先考慮構造乙個完全圖,那麼t個點的完全圖一共能有c(t, 4)個大小為4的團。但是在c(t, 4)和c(t+1, 4)之間會有空缺,因此在完全圖外放若干個點,每個點與這個完全圖中的若干個點連邊,最後會形成類似於c(t, 4)+c(x1, 3)+c(x2, 3)+…這樣的式子,並且要能補滿中間的空隙。

打表發現5個點可以滿足。(不知道怎麼嚴格證明)

#includeusing namespace std;

#define ll long long

int c[2222222];

ll c4(ll x)

ll c3(ll x)

int main()

ll n;

cin>>n;

ll lim=70;

ll t=4;

while((t+1)<=lim&&c4(t+1)<=n)

lim=min(lim,t);

ll a,b,c,d;

ll e=-1;

for(a=2;a<=lim;a++)

}if(e!=-1)break;

}if(e!=-1)break;

} if(e!=-1)break;

} long long lss=t*(t-1)/2+a+b+c+d+e;

cout

for(ll i=1;i<=a;i++)

for(ll i=1;i<=b;i++)

for(ll i=1;i<=c;i++)

for(ll i=1;i<=d;i++)

for(ll i=1;i<=e;i++)

return 0;

}

2018牛客多校3

h diff prime pairs 1 3 1 5 1 7 1 11.2 3 2 5 2 7 2 11.3 3 3 5 3 7 3 11.4 3 4 5 4 7 4 11.打個素數表 用素數篩一遍 includeusing namespace std bool a 11111111 int zs ...

牛客多校2018四 A

很顯然地發現對於某個位置的乙個1或2,它對答案的貢獻與之前進行了多少秒有關,所以趕緊打個表看一看,就發現對於某乙個1來說,它對答案的貢獻就是 t 2 2 t是之前經過的時間,對於2的情況,打出假設輸入的數列是 2 02 002 0002 的表,就發現答案分別是3,9,21,45,93 對這個答案數列...

2018 牛客多校 2

problem a problem b 考慮第二種優惠,每乙個物品如果原價購買了,那麼向可以免費拿的那個物品連一條邊 在樹上被指向的那個點是父親 如果不考慮環的話,考慮樹上dp。設 f i 0 表示買掉以 i 為根的子樹需要的最小花費,設 f i 0 表示買掉以 i 為根的子樹並且 i 這個點是原價...