•$luogu\ p1089$ 津津的儲蓄計畫$(\ √\ )$$luogu\ p1089$ 津津的儲蓄計畫題目傳送門•$luogu\ p1090$ 合併果子$(\ √\ )$
•$luogu\ p1091$
合唱隊形$(\ √\ )$
•$luogu\ p1092$
蟲食算$(\ √\ )$
$noip$提高組中唯一一道入門題$qwq$
直接暴力模擬就$ok$了,放下**就好
1 #include2**戳這裡using
namespace
std;
3int
main()
11else
12 b++;
13if(c==1&&d==0
)14 15}
16if(d!=0) cout<
17else cout<<120*x+a;
1819
return0;
20 }
$luogu\ p1090$ 合併果子
題目傳送門
可以直接用$stl$中的$priority_queue$,也可以手寫堆
每次取出堆頂$($小根堆$)$的兩個元素,將其和加進答案並重新插入堆
放下$stl$的**
1 #include2stl版#define ri register int
3#define ll long long
4#define rl register ll
5#define go(i,a,b) for(ri i=a;i<=b;i++)
6#define back(i,a,b) for(ri i=a;i>=b;i--)
7#define g() getchar()
8#define il inline
9#define pf printf
10#define mem(a,b) memset(a,b,sizeof(a))
11using
namespace
std;
12 il int
fr()
15while(ch>='
0'&&ch<='
9')w=(w<<1)+(w<<3)+ch-'
0',ch=g();
16return w*q;17}
18int
n,ans;
19 priority_queueq;
20int
main()
28while(q.size()>1)34
if(!ans)ans+=q.top();
35 pf("
%d\n
",ans);
36return0;
37 }
$luogu\ p1092$ 合唱隊形
題目傳送門
設$b[i]$表示正著數到第$i$個人,包括第$i$個人在內最多能留下多少個人,$c[i]$表示倒著數
最後列舉中間的分界點,使得$b[i]+c[i]$最大,答案為$n-max\+1$
1 #include2**戳這裡using
namespace
std;
3int a[200],b[200],c[200];4
intmain()
17for(i=n;i>=1;i--)
1823 maxx=0;24
for(i=1;i<=n;i++)
25if(b[i]+c[i]>maxx) maxx=b[i]+c[i];
26 cout<1
<
27return0;
28 }
$luogu\ p1091$ 蟲食算
題目傳送門
從大到小列舉每個字母代表的數字,一邊列舉一邊判斷是否合法,$dfs+$剪枝即可$ac$
1 #include2**戳這裡using
namespace
std;
3int n,sum[30],wait[30];4
char s1[30],s2[30],s3[30];5
bool used[30];6
void
print()
11 exit(0
);12}13
bool
cut()
21return
1;//
如果符合條件則返回122}
23bool pd()
30return1;
31}32void search(int x)
38for(int i=n-1;i>=0;i--)
46return;47
}48int num=0;49
void
get(int
x)55}56
intmain()
69 memset(used,0,sizeof(used));//
標記清零
70 search(0
);71
return0;
72 }
NOIP2004 合併果子 解題報告
輸入檔案 fruit.in 輸出檔案 fruit.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可...
NOIP2004 合唱隊形題解
n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 tk 1 i k 你的任務是,已知所有n位同學的身高,計算最少...
NOIP 2004 蟲食算題解
時間限制 1 sec 記憶體限制 128 mb 所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 43 98650 45 8468 6633 44445506978 其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字...