作业帮 > 综合 > 作业

一道poi的题我们有一个可供支配的天平.如果天平的两边没有放任何重量或者两边重量一样,则天平平衡.在给出的一个砝码(每个

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/24 09:21:05
一道poi的题
我们有一个可供支配的天平.如果天平的两边没有放任何重量或者两边重量一样,则天平平衡.在给出的一个砝码(每个砝码有一个重量)集合中,我们要找到两个独立的砝码子集放在天平的两边使之平衡.而且我们需要放置砝码中重量最大的的重量尽可能重.
输入
在文件wag.in 中第一行有一个整数n,2
一道poi的题我们有一个可供支配的天平.如果天平的两边没有放任何重量或者两边重量一样,则天平平衡.在给出的一个砝码(每个
注意题目是要最重的砝码尽量重.
这道题比较可以写得比较巧妙,将砝码按重量排序,直接做背包,若某个重量被到达至少两次,那么可以用形成转移的砝码更新答案.即使某个砝码(不可能是形成该转移的砝码)被使用了两次,我们只要在左右都去除该砝码即可,不会对答案造成影响.
优化:第i次需要转移的重量,min(s[n]/2,s[i]) dwonto a[i]
program xqz;
uses math;
const maxn=1000; maxs=50000; m=maxs shr 1;
var
i,j,n,k,ans,now,t:longint;
a,s:array[0..maxn] of longint;
v:array[0..maxs] of boolean;
begin
assign(input,'wag.in'); reset(input); assign(output,'wag.out'); rewrite(output);
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
for j:=i+1 to n do
if a[j]s[n] shr 1 then s[i]:=s[n] shr 1;
v[0]:=true;
for i:=1 to n do
for j:=s[i] downto a[i] do
if v[j-a[i]] then
if not v[j] then v[j]:=true
else ans:=a[i];
writeln(ans);
close(input); close(output);
end.
有2克,3克,9克的砝码各一个,那么,在天平上能称出多少种不同重量的物体(天平两边都可以放砝码)? 有1、2、4、8克的砝码各一个,每次从中取3个称重,如果天平的两边都可以放砝码、能秤出多少种重量? 、一台天平,右盘上有若干重量相等的白球,左盘上有若干重量相等的黑球,这时两边平衡,在右盘上取走一个 一道化学填空题 托盘天平两边各放一个盛有等质量稀盐酸的甲乙两个烧杯,调节天平使天平达到平衡.然后在甲乙烧杯中分别加入a 如果允许称物体重量时在天平两边同时放砝码,那么一台天平要称出1克、2克、3克······13克物体的重量,只要准备3个砝 怎样用一个平衡螺码坏的托盘天平称物体重量 一个没有砝码的天平12个外行一样的铁球其中有一个重量异常只能称三次如何找出那个异常球呢 现有2克、3克、9克砝码各一个,在天平上能称出几种不同的重量? 有十二个乒乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称 现有3克,2克,7克的砝码各一个,在天平上最多能称出多少种不同的重量?(砝码只能放在天平的一边) 一架天平左右两边都可以放砝码.要称出1—80克间所有整克数重量,至少需五个砝码,它们的重量分别是多少 在天平称的做盘里放着3个同样的球和100克砝码,要在右盘里放上400克砝码,天平秤才平衡,求每个球的重量.