題目:執行n組命令,對乙個隊伍進行加入新人,去掉進去的時間最長的人,查詢實力處於中間的人。
#include
#include
#include
#include
using namespace std;
queue<
int> q;
const
int maxn =
1e4+10;
int num[maxn]
;int sum;
intbinarysearch
(int x)
//二分查詢x在num中的下界
return l;
}void
insert
(int x)
//插入x
void
delete
(int x)
//刪除x
intmain()
else
if(ch[0]
=='o'
)else}}
return0;
}
題目:給乙個數字n,求1~n有多少個數字的序列包含「49」子串行。
#include
#include
#define ll long long
using namespace std;
ll dp[23]
[2];
int num[23]
;ll dfs
(int pos,bool state,bool limit)
ll solve
(ll n)
return
dfs(s,false,true);}
intmain()
return0;
}
題目:給出一組數,求出每個指定區間裡的最大的數和最小的數的差。
#include
#include
#include
using namespace std;
const
int maxn =
50000
;int mx[maxn*4]
, mm[maxn*4]
;void
buildtree
(int l,
int r,
int k)
int mid =
(l+r)/2
;buildtree
(l, mid,
2*k)
;buildtree
(mid+
1, r,
2*k+1)
; mx[k]
=max
(mx[
2*k]
, mx[
2*k+1]
);mm[k]
=min
(mm[
2*k]
, mm[
2*k+1]
);}int
query1
(int l,
int r,
int ql,
int qr,
int k)
intquery2
(int l,
int r,
int ql,
int qr,
int k)
intmain()
return0;
}
題目:有n種秘籍,每種秘籍都能提公升某個人一定的能力,對a,b兩個人培養,在盡量公平的基礎上來重點培養a,求如何分配秘籍。
//這個題解的辦法是把題目轉換成0-1揹包
//使b繼承人的能力在不超過總體一半的情況下最大
#include
#include
#include
using namespace std;
int v[
5005];
int dp[
250005];
int a, b;
int n;
intmain()
}for
(int i =
1; i < num; i++
)for
(int j = sum /
2; j >= v[i]
; j--
) dp[j]
=max
(dp[j - v[i]
]+ v[i]
, dp[j]);
printf
("%d %d\n"
, sum - dp[sum /2]
, dp[sum /2]
);}return0;
}
acm新手訓練題
問題描述 輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元。輸入幾組字元進行測試。問題分析 將三個字元的ascll碼放入三個整型數中,然後同過三個整數的比較來實現字元的比較。解題步驟 開闢乙個字元空間 通過字元指標實現對字元的訪問,接著用while語句實現多組資料的輸入,在whil...
acm新手訓練題
問題描 述輸入一行數字,如果我們把這行數字中的 5 都看成空格,那麼就得到一行用空格分割的若干非負整數 可能有些整數以 0 開頭,這些頭部的 0 應該被忽略掉,除非這個整數就是由若干個 0 組成的,這時這個整數就是0 你的任務是 對這些分割得到的整數,依從小到大的順序排序輸出。input 輸入包含多...
2012春季ACM內部測試賽3
a 題意是給定乙個n m的矩形,初始顏色都為0 代表一種顏色 然後給你乙個r c的矩形刷子可以講r c內部的顏色0或者是1變為相反色 注意一共有0,1兩種顏色,他倆互為相反色 對於每乙個出現的1,可定會至少被刷過一次,我們只要很據目標矩陣統計,遇到1是時就將r c的大小的矩陣進行翻轉,如果出現i r...