小公尺全國高校程式設計大賽 正式賽題解

2021-08-28 03:28:50 字數 1832 閱讀 2820

高弗雷勳爵

這個題很水,但是半個小時都讀錯題,就很傷了,先把敵人的血量從小到大排序,用乙個sum記錄我當前已經扣除的血量,如果對於乙個敵人,hp高於我的sum,我就看我還需要多少發子彈res,使得sum+res*2>=hp即可,然後殺死乙個敵人,答案就加res,我又獲得一發子彈(子彈繼續傷害暫時理解為獎勵獲得一發子彈),先別急著sum+=2,先殺死後面我不用獎勵的子彈也能殺死的敵人,再將sum+=2即可。

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=1e5;

int a[maxn];

int main()

int ans=0;

sort(a+1,a+1+tot);

int sum=0,flag=0;

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

int t=(a[i]-sum);

int res=t/2;

if(t%2)res++;

sum+=res*2;

flag=1;

ans+=res;

} printf("%d\n",ans);

}}

打羽毛球的小愛同學

吉老師出的杭電6425原題(多校9),首先不看a只看b,c,d,因為a無球無拍,對於b,c,d,可以乙個人都不用來,初始ans=1,然後b只有拍,從b中任意組合都打不了球,因此ans+=2^b-1,為什麼減一,初始化就算了乙個人都不用來,因此b個人的組合去掉乙個人都不來的情況,同理,c只有球,任意c的組合也打不了球,ans+=2^c-1,d有球有拍,但是d只能來乙個人也是不行的,所以ans+=d,兩球一拍或者只有一球一拍也不行,所以ans+=(b+d)*(2^c-1)。

#includeusing namespace std;

typedef long long ll;

const int maxn=1e7+10;

const int mod=998244353;

int n,m,a,b,c,d;

ll p[maxn];

int main()

else

void update(int o,int l,int r,int k,int v)

int ls=o*2,rs=o*2+1,m=(l+r)/2;

if(k<=m)update(ls,l,m,k,v);

else update(rs,m+1,r,k,v);

tree[o]=max(tree[ls],tree[rs]);

}int main()

sort(a+1,a+1+k);

sort(b+1,b+1+k);

int sz=0,tot=0;

b[1].num=++sz;

for(int i=2;i<=k;i++)

if(b[i]==b[i-1])b[i].num=b[i-1].num;

else b[i].num=++sz;

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

d[b[i].id]=b[i].num;

memset(tree,0,sizeof(tree));

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

else

}for(int j=1;j<=tot;j++)

update(1,1,k,v[j].pos,v[j].v);

printf("%d\n",tree[1]);

}}

小公尺全國高校程式設計大賽 高弗雷勳爵

小公尺oj給定了輸入格式,所以要完全按照他的來,輸入字元之後在轉換為數字就行了。這道題注意到資料的大小為1e9,所以直接暴力肯定是會超時的,所以首先排序,之後定義乙個累加器,看看前邊的數字減為小於等於零時一共減少了個二,然後根據累加器來計算當前數字的值。一直計算到所有的數字小於等於零,輸出結果。in...

全國高校程式設計大賽 電商促銷

題目描述 雙11電商採取發放9折折扣券和10元現金券的方式進行 這2種券都需要客戶在採購商品總價超過50元時才能使用,且一次只能使用其中1種,而且每種只能使用1張。輸入客戶採購商品的總價,請你程式設計幫助計算客戶最少需付多少費用才能成功採購該商品。輸入說明 擬採購商品總價。輸出說明 需要支付的費用。...

全國高校程式設計大賽 素數和偶數

題目描述 輸入n個整數,分2行分別輸出其中的素數和偶數。輸入說明 第一行輸入整數個數n 第二行輸入這n個整數 輸出說明 第一行輸出素數,第二 行輸出偶數 備往 行如果沒有任何資料,輸出空行。輸入樣例 1011 12 13 24 25 26 37 38 39 40 輸出樣例 11 13 37 12 2...