BNU – Soccer Teams- 01背包

(1)1與0的特性: 1是任何整數的約數,即對於任何整數a,總有1|a. 0是任何非零整數的倍數,a≠0,a為整數,則a|0. (2)若一個整數的末位是0、2、4、6或8,則這個數能被2整除。 (3)若一個整數的數字和能被3整除,則這個整數能被3整除。 (4) 若一個整數的末尾兩位元能被4整除,則這個數能被4整除。 (5)若一個整數的末位是0或5,則這個數能被5整除。 (6)若一個整數能被2和3整除,則這個數能被6整除。

hdu – 4324 – Triangle LOVE – 深搜

2000個點的有向圖,保證任意兩點間僅有一條有向邊,問是否存在一個三元環。http://acm.hdu.edu.cn/showproblem.php?pid=4324解法一:     如果把任意有公用頂點的兩邊構成的圖形看做一個角,可將角分為是b的和不是b的(用a類表示),把任意三條邊看做一個三角形,可將三角形分為x、y兩種。對於每個頂點入度為in出度為out則共有in*out種b種角,由於是競賽圖,因此有C(n,2)-in*out種a種角,根據3x+y=b,2y=a,因此x=(b-a/2)/3

hdu – 4326 – Game – 機率dp

本題題意很簡單,給出n個人每次4人進行比賽其他人等待,勝者繼續,負者排到最後,連續或得m次勝利的人成為最終的贏家,求第k個人最終獲得勝利的機率是多少?對於這題,我們首先確立一個這樣的模型: x1先贏了i局,正在於x2,x3,x4賭鬥,後面依次有x5,x6,……,xn等待。用P[i][j]表示x1先贏了i局的情況下,當前的xj獲勝的機率。http://acm.hdu.edu.cn/showproblem.php?pid=4326i < mP[i][j] = P[i + 1][j] * 1/4

hdu – 4332 – Constructing Chimney – 狀態壓縮dp

題意:http://acm.hdu.edu.cn/showproblem.php?pid=4332有一塊3*3的空地,要求在上面建一個建築物,但是要求中間的那塊必須空著,現在只有1*1*2的磚,問你要建成高度為N的建築物共有多少種不同的方法。N<=1e9思路:看到這麼大的N就應該想到用矩陣二分冪來求,那麼很顯然就是dp了,因為磚只有1*1*2的一種,在對一層進行排放的時候我們只需關心它的上一層的擺放情況就好了,

hdu – 4419 – Colourful Rectangle – 線段樹

求http://acm.hdu.edu.cn/showproblem.php?pid=4419求不同顏色的覆蓋面積。#include<cstring>#include<cstdio>#include<algorithm>using namespace std;typedef __int64 lld;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn = 65537

hdu – 4333 – Revolving Digits – 擴充kmp

擴充的KMP演算法,這個演算法作為KMP的擴充,可以說是包含KMP的。它求出了一組數值,extend[i]表示A串中以i開始的尾碼(從i到lena的子串)與B串的最長公用首碼(從頭數到不一樣的字元)的長度,也就是LCP。next[i]表示T[i..m]與T的最長公用前置長度,也就是自匹配的長度。設extend[0..k-1]已經算好,並且在以前的匹配過程中到達的最遠位置是p-1。最遠位置嚴格的說就是i+extend[i]-1的最大值,其中i=0,1,2,3,…,k-1;設取最大值的i是a。則有A

hdu – 4334 – Trouble – 線性尋找

http://acm.hdu.edu.cn/showproblem.php?pid=4334__int64害我wa了好多次。。。線性尋找, 跟快排一樣。#define maxn 40010#include <cstdio>#include <algorithm>using namespace std;int T, n;__int64 a[maxn], b[maxn];__int64 m[5][210];int main(){ scanf("%d", & T)

hdu 4288 線段樹 Sum of Medians 像lazysales girl Coder

題意:      就是不停地插數,讓數按從小到大排。求第3,8,13...個數的和。解:    線段樹。線段樹的座標表示在所有給出的數當中第i‘大的數(0就是還沒有,>0就是第i大的數已經插入了)。然後ans[][i]表示當前區間(以第i (i為下標)個數% 5 )相加的和(可能表述有點不清楚哈。。)意會,意會。 最後是O(1)查詢。做題過程:   

poj 3084 最小割 模板題 PANIC ROOM

多校出了道模板題,於是就開始找模板。這題也是求最小割。http://poj.org/problem?id=3084題意:有n個房間,要確保一個房間(t)不能進壞人。相鄰的房間可能會有門,但是門上的鎖是單向的(只能從一個房間開啟進入另一個房間,a b ,只能從a進入b 不能從b

hdu – 4331 – Image Recognition – 掃描線

求在01圖中,以1為邊的正方形有幾個。http://acm.hdu.edu.cn/showproblem.php?pid=4331#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#define lson l, m , rt << 1#define rson m + 1, r , rt <&

poj 1436 線段樹區間操作 Horizontally Visible Segments

給出 n 條垂線,問有多少個三元組 中,任意兩條可以看得到對方範例中 答案為 1 ,橫座標 為 1 的線段+橫座標 為 2 (3,4)的線段+橫座標為 1 的線段 做過 poj 2777 區間染色的問題 就 很容易看出這個 題目 其實就 是 該問題 的小 延伸,我們可以根據x座標進行從小到大的排序,然後對每條線段query該線段左端,改線段統領的區間內

hdu 2462 數學歐拉 The Luckiest number

題目思路:求解10^x = 1 (mod 9*L/gcd(L,8))的滿足x>0的最小解就是答案由8構成的數A設有x位那麼A=8(10^0+10^1+...+10^(x-1));很容易得到A=(8/9)*(10^x-1);題目的要求就是A=0(mod L)就是(8/9)*(10^x-1)=0(mod L);->8*(10^x-1)=0(mod 9L);->10^x-1=0(mod 9L/gcd(L,8));->10^x =1 (mod 9L/gcd(L,8));令p=9*

poj 3667 線段樹前尾碼區間 Hotel

【題意】一共有n個空位,初始全為空白,會有兩種操作,一種是詢問是否有r個連續的空位,若有,則將最左端有r個連續的空位的地方全部填滿,若沒有則不填,另一種是將從u開始的d個位置全部清空【輸入】第一行兩個數n、m(<=50000),表示n個空位,m次操作接下來m行每行表示一次操作,若該行第一個數字為1,接下來是一個數字,表示操作一若該行第一個數字為2,接下來是兩個數字,表示操作二【輸出】對於每個操作一,若存在r個連續的空位,則輸出最靠左的r個連續空位的起點,若不存在則輸出0解:     

hdu – 4308 – Saving Princess claire – 簡單寬搜

題意:http://acm.hdu.edu.cn/showproblem.php?pid=4308   從Y到C,遇#不能走,遇*花錢,全部的P連通,問最少花費。解:   簡單寬搜。第一次遇到p就將所有的連通的p都放進隊列。View Code #include<cstdio>#include<queue>#include<cstring>using namespace std;struct point{ int x, y; int

hdu – 4309 – Seikimatsu Occult Tonneru – 網路流

http://acm.hdu.edu.cn/showproblem.php?pid=4309題意: n個點,每個點有初始的值 ,三種 通道,1、隧道:可以用來躲避,有固定的容量,也可以用來傳遞。2、普通的道路,可以無限的通過。3、橋(最多有12座):不花費的話能通過一人,修之後可以無限通過。問最少花費最大可以隱藏人數。解:     網路流 +

BNU – Choosing a camera – 資料結構 (線段樹、隊列)

線段樹存的是更新到當前所有的相機,隊列則不管3721都把出現的camera塞進去。 最後,在詢問那裡判斷。 一個一個出隊,詢問這個相機是否有用。隊列是用了優先隊列。題意是:相機有兩個參數和價格。一個參數大於,一個參數大於等於剩下的所有相機,這個相機才不過時。我們需要在不過時的相機裡面挑選價格最便宜的。 價格相等的時候挑選最早出現的。#include <cstdio>#include <vector>#include <algorithm>#include

hdu – 4310 – Hero – 狀態dp

題意:需要殺死n個英雄,怎麼使自己的受到傷害最小。對面每個英雄有攻擊力(DPS)和血量(HP),回合制,你每次可以打一個英雄,打掉他的一滴血。對方每回合所有存活的英雄都會攻擊你,你掉的血量等於攻擊你的英雄攻擊力之和。http://acm.hdu.edu.cn/showproblem.php?pid=4310中等偏易題,狀態壓縮dp,用dp[mask]表示殺死mask集合的敵人時,這些敵人造成的最小hp消耗。有轉移方程dp[mask] = min{dp[mask - {i}] +

hdu – 4311 – Meeting point-1 – 想法題

題意:給定n個座標,求其中一個座標到其他座標之和的最小值。http://acm.hdu.edu.cn/showproblem.php?pid=4311解: 1.按x排序。 求sumx[]。 sumx[i]表示前i個包括i的x座標之和。 並且記錄按x排序時的位置id。(座標和,不是距離和) 2.按y排序。求sumy[i]; 3.對於每個i, ( p[i].y ) * (i) - sumy[i] 表示在i點下方的點和i點的縱向距離之和,(sumy[n] - sumy[i] - (p[i].y) *

BNU – Playing Field 想法題。

給一個多邊形和一條過兩點的線,輸出面積小的。看了代碼你就知道解了。 long long的話一定要是fabs, 就因為這樣給wa了兩次。#define maxn 50005#include <cstdio>#include <cmath>#include <algorithm>using namespace std;struct Node{ long long x, y;}p[maxn];double getarea(Node a, Node b,

BNU – Square-Free Numbers

答案就是分解質因數求質數指數最大的。1A, 呵呵。Square-Free#include <cstdio>#define maxn 1000100int T,n;int prime[maxn];void getprime(){ prime[0] = 0; for(int i = 2; i < maxn ; i ++){ if(!prime[i]) prime[++prime[0]] = i; for(int j = 1; j <=

總頁數: 61357 1 .... 19424 19425 19426 19427 19428 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.