11月06日解題報告

2021-08-10 09:42:15 字數 2971 閱讀 8207

今天考試感覺在狀態上還可以,但是覺得還是出現了一些心態上的問題,尤其是到後面改第二題的時候,整個人都是一種比較方的狀態,這樣可不行,還是要好好調整心態才是,emmmm,離考試也沒幾天了,要好好加油啊;

題面

小a教室的牆上掛滿了氣球,五顏六色,小朋友們非常喜歡。

剛一下課,小朋友們就打算去搶這些氣球。每個氣球在牆上都有一定的高度,只有當小朋友跳起來時,手能夠到的高度大於等於氣球的高度,小朋友才能摘到這個氣球。為了公平起見,老師讓跳的低的小朋友先摘,跳的高的小朋友後摘。

小朋友都很貪心,每個小朋友在摘氣球的時候都會把自己能摘的氣球都摘掉。很巧的是,小朋友們跳起來手能夠著的高度都不一樣,這樣就不會有跳起來後高度相同的小朋友之間發生爭執了。

輸入格式

第一行輸入兩個空格分隔的整數n,m,其中n表示小朋友的數量,m表示牆上氣球的數量。

第二行輸入n個正整數(每兩個整數之間用空格隔開),第i個數為ai,表示第i個小朋友跳起來手能夠著的高度為ai。

第三行輸入m個正整數(每兩個整數之間用空格隔開),第i個數為hi,表示第i個氣球的高度為hi。

輸出格式

輸出一共n行,每行乙個整數。

第i行表示第i個小朋友摘到的氣球數量。

ac思路

emmmmm,水題

**

#include

#include

#include

using namespace std;

long long n,m,a;

long long q[120000];

long long l=1;

long long ans[120000];

struct node

e[120000];

int cmp(const node &a,const node &b)

int main()

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

scanf("%lld",&q[i]);

sort(q+1,q+m+1);

sort(e+1,e+n+1,cmp);

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

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

cout<題面

戰狂也在玩《魔方王國》。他只會徵兵而不會建城市,因此他決定對小奇的城市進行轟炸。

小奇有n 座城市,城市之間建立了m 條有向的地下通道。戰狂會發起若干輪轟炸,每輪可以轟炸任意多個城市。

每座城市裡都有戰狂部署的間諜,在城市遭遇轟炸時,它們會通過地下通道撤離至其它城市。非常不幸的是,在地道裡無法得知其它城市是否被轟炸,如果存在兩個不同的城市i,j,它們在同一輪被轟炸,並且可以通過地道從城市i 到達城市j,那麼城市i 的間諜可能因為撤離到城市j 而被炸死。為了避免這一情況,戰狂不會在同一輪轟炸城市i 和城市j。

你需要求出戰狂最少需要多少輪可以對每座城市都進行至少一次轟炸。

輸入資料

第一行兩個整數n,m。接下來m 行每行兩個整數a,b 表示一條從a 連向b的單向邊。

輸出資料

輸出一行僅乙個整數表示答案。

樣例輸入

5 4

1 2

2 3

3 1

4 5

樣例輸出

3ac思路

這道題比較工業啊,感覺上和之前做過的一道題很像,縮點+重建邊,把點權設為強聯通分量中的點數,然後就沒有環了,然後找鏈首,求出點權最大的一條鏈,就是答案了

**

#include

#include

#include

#include

using

namespace

std;

int n,m;

int a,b;

int ans=0;

int sum=0;

int tot=0;

int head[1000005],head2[1000005];

int dfs[1000050];

int lower[1000500];

intstack[1000500];

int biao[1000020];

int belon[1000020];

int shu[1000500];

int fa[1000500];

int top=0,tot2=0;

int s=0;

struct node

e[1300000],e2[1300000];

void build(int f,int t)

void build2(int f,int t)

int getfa(int u)

int tar(int u)

else

if(biao[v])

}if(dfs[u]==lower[u])

belon[t]=sum;

biao[t]=0;

top--;

shu[sum]++;

}}int qi(int u)

shu[u]+=mm;

ans=max(shu[u],ans);

}int main()

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

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

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

}memset(biao,0,sizeof(biao));

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

cout

<}

11月03日解題報告

今天的考試應該還算在狀態的吧,第一題雖然在lemon上面只有30分,但是在洛谷上是a掉了,emmm 雖然是這樣但還是要注意不要開太大才是,畢竟不怕一萬就怕萬一嘛 還是要注意一下就是 題面 從前有一棵樹,確定乙個根節點,最大化所有點深度之和 輸入 第一行n 接下來n 1 行表示樹的每條邊 輸出 乙個整...

11月04日解題報告

今天考試情況不好,策略上還存在問題,記憶體定義的問題又出現了,看來還是不能放鬆啊,第一題沒有開long long 直接從80掉到20,第二題超記憶體本來可以搞到的35分直接爆0,啊 本來可以有100多分的,看來還是自己能力有欠缺啊,還是要多多向大佬學習,好好改正才是,至於解題策略,還是要力求第一題要...

10月31日解題報告

這次考試多多少少還是表現了自己在一些能力的缺失,還是太容易不審清楚題目就放開去做了,這一點不好,比如今天第一題與第三題,第一題真的水,但是自己卻因為水而想的過於簡單,直接就爆0了,血的教訓,第三題是因為自己沒有合理地估計答案範圍,貪心出來了,但是卻少開了long long 導致直接只有40分,改為l...