10 15考試反思

2022-05-21 11:57:13 字數 1898 閱讀 7748

t1 衣服

首先這題很顯然是個貪心,我們考慮如何貪心。我們看顏色種類,最多只有四種,所以我們考慮開4個優先佇列,把所有衣服上的顏色都推到優先佇列裡,比如衣服1有123三個顏色,就把衣服1的價值推到編號為123的佇列中。然後將詢問離線,每次取當前這個所需要的顏色的隊首元素,然後對於這個衣服,我們拿過了,加乙個vis陣列,然後下次遇到這個衣服的時候,把它pop掉就可以啦

1 #include 2

#define ll long long

3#define res register

4#define maxn 200050

5#define int ll

6using

namespace

std;

7int

n,m,want[maxn],color[maxn];

8bool

vis[maxn];

9struct

node

15}c[maxn];

16 priority_queueq[4

];17

ll read()

1821

while(ch>='

0'&&ch<='9')

22return s*w;23}

24signed main()

2535

for(res int i=1;i<=m;i++) want[i]=read();

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

38while

(vis[q[want[i]].top().num]) q[want[i]].pop();

39 printf("

%lld

",q[want[i]].top().val);

40 vis[q[want[i]].top().num]=1;41

q[want[i]].pop();

42}

43return0;

44 }

view code

t2 分段

玄學(常規dp)考慮對於乙個新的點,我們有兩種處理辦法,第一種是把他安排在乙個已經求過的區間中,不然就是把他單起乙個區間。根據這個思路進行轉移即可

t3 拜訪 

沒啥好說的,最短路裸題,給了15s,看似卡死了其他做法,卻給暴力帶來了無限生機。你遇到修改的時候,把這條路的權值+1,然後重新跑spfa就完事了

1 #include 2

#define ll long long

3#define res register

4#define maxn 100050

5#define int ll

6using

namespace

std;

7int x,y,z,n,m,head[maxn],diss[maxn],as

,op;

8bool

vis[maxn],ju;

9struct

nodeg[maxn];

12 inline void add(int u,int v,int

dis)

17 dequeq;

18 inline void

spfa()31}

32}33}

3435}36

ll read()

3740

while(ch>='

0'&&ch<='9')

41return s*w;42}

43signed main()

4450

for(res int i=1;i<=as;i++)55}

56else60}

61return0;

62 }

view code

1015考試總結

先通覽一遍題面 第一題估計是數論,第二題估計是dp或者區間操作,第三題估計是資料結構 首先第一題最關鍵的性質是n n n m,也即是說可以一列一列的轉移,每隔n列個數相同 然後一開始想錯了,想成之後都是第一行個數 8 30碼完第一題第乙個版本 方法有問題 8 40碼完第一題第二個版本 暴力 對拍,發...

C 考試反思

計算機二級c 考試已經有過一段時間了,近來一直反思學習中的欠缺之處。雖然用了不少的時間來準備c 的考試,但最終的考試仍然讓自己大失所望,本來滿懷的信心,在見到考試題的那一刻喪失殆盡。靜下心來仔細想想,考試失誤的根本原因肯定是自己身上出問題了,之所以喪失信心,是因為考試前聽同學們說考試中淨是原題,而考...

考試反思 2019 08 03

t1 題目大意 我們已知勾股數滿足a 2 b 2 c 2且可以構成乙個三角形,即滿足兩邊之和大於第三邊,兩邊之差小於第三邊,我們認為,對於a 2 b 2 c 2,若存在 ka 2 k b 2 kc 2 為正整數 則我們認為這兩組勾股數並存,現在給定n組資料,每組資料輸入x和y,求區間 x,y 中有多...