今天挺不友好的,早上忘記定鬧鐘,晚了半小時起床,然後早上信心滿滿打算弄他個300分。結果……132.2分·。wtf???
題意:有n頭奶牛,k種細菌(k<=15),給你每頭奶牛攜帶的細菌種類,問:若讓選出所有奶牛攜帶細菌少於d種,最多選幾頭奶牛?
思路:上手就用了動歸,可能是昨天打積木那題,自己信心爆棚。然後……神奇的22.2分出爐啦! 之後,我痛定思痛,發現動歸真的是偽得快。
正解:反正k小,把可能情況列舉一下,最多也沒幾種。不就是$c_k^d$種嗎?然後比較打擂台就可以了。
見**:
#include#include#include
#include
using
namespace
std;
int n,ans,d,k,inf=-0x3f3f3f,flag[16],use[16
]; bool a[1001][16
];void dfs(int
x) }
}if(ans>inf)
inf=ans;
ans=n;
}else
dfs(x+1
);
flag[i]=0
; use[x]=0
; }
}}int
main()
}dfs(1);
printf("%d
",inf);
return0;
}
要開乙個陣列,依次向後走,去記錄,萬萬不能從1到k來回搞,不然就不是$c_d^k$而是c!了。
題意:有乙個序列,你可以選擇其中任意個數組成乙個子串行,其中有個彈跳值,彈跳值為子串行奇數項的和乘上偶數項的和,問:彈跳值最大為多少?
思路:熟悉的操作,熟悉的味道——動歸!一開始在考場上,把奇偶混在一起,沒有分開奇數項和偶數項,只有10分。
正解:奇偶分開是什麼意思呢?很簡單。就是設乙個二維陣列:a[n][2],其中第二維為1表示此項做奇數項是的情況,第二維為0表示此項是偶數項的情況。
轉移方程:a[n][1]=max(a[n-1][0]+a[n][1],a[n-1][1])這個意思就是:如果不選此項就是前乙個奇數項,然後依次向後轉移。若選此項就是前一項為偶數項那就加上。
同理:a[n][0]=max(a[n-1][1]-a[n][0],a[n-1][0])。
見**:
#include#include#include
#include
using
namespace
std;
int n,max1=-0x3f3f3f,max2=-0x3f3f3f,inf=-0x3f3f3f
;int a[150001][2
];int
main()
for(int i=2;i<=n;i++)
a[i][
0]=max1-a[i][1
]; a[i][
1]+=max2;
}for(int i=1;i<=n;i++)
printf("%d
",inf);
return0;
}
題意:有乙個被水淹沒小鎮,給你小鎮每塊地的高度,每塊地上的水可以流到上、下、左、右當中不高於它高度的格仔裡,可以在任何格仔裡安裝一台水幫浦,水幫浦可以抽走無限量的水。問:最少需要安裝幾台水幫浦可以抽走所有的水?
正解:寬搜。先找到最低的格仔,然後向高處拓展標記,如果沒有抽完就找第二小的格仔繼續搜,以此類推。用乙個變數記錄一下次數即可。
見**:
#include#include#include
using
namespace
std;
int n,m,k,head,ans,tail=1
;int h1[2501],l1[2501],p[5]=,y[5]=;
char a[51][51
];bool flag[51][51
];void bfs(int h,int
l) }
}}int
main()
while(1
)
}if(flag2==false
)
break
; bfs(minh,minl);
ans++;
}printf(
"%d\n
",ans);
}return0;
}
最大生成樹模板題:沒啥好講的,博主也不會講,上網搜唄。
見**:
#include#include#include
#include
using
namespace
std;
int n,m,ans,ans1,fa[20001
],flag;
struct
cow;
cow tree[
20001
];bool
cmp(cow x,cow y)
int find(int
x)void add(int x,int
y)int
main()
sort(tree+1,tree+1+m,cmp);
for(int i=1;i<=m;i++)
}if(ans1==n-1
)
else
printf("-1
");return0;
}
中山Day5 普及
今天題目真是賊難吶。才38。收穫 樹狀陣列單個修改 樹狀陣列區間修改 題意 有n個數,問 從中取任意個數,他們的和為質數的方案數是多少?n 50 暴力模擬即可,這裡不講。見 include include include include using namespace std int n,ans,s...
中山紀中Day1 普及
早上一起,撲面是瓢潑的大雨。跨過千山萬水,來到紀中門前,毅然以一種大無畏的英雄氣概跨進了考場。面對四道神題。然後,我成功過五關斬六將,a掉了2道題!收穫 優先佇列 大 小根堆 wexley最近發現了乙個古老的螢幕遊戲。遊戲的螢幕被劃分成n列。在螢幕的底端,有乙個寬為m列的籃子 m思路 此題略簡單,設...
暴搜 中山紀念中學暑期遊Day2 佳餚
考的不好,但是評講過後發現 都!好!水!啊!還是那句自己的老話 佳餚就是非常美味的菜的意思,佳餚最關鍵的是選擇好原料。現在有n種原料,每種原料都有酸度s和苦度b兩個屬性,當選擇多種原料時,總酸度為每種原料的酸度之積,總苦度為每種原料的苦度之和。正如大家所知,佳餚是既不酸也不苦的,因為要保證所選的原料...