題意:
給你兩個標准重量的物體(質量為整數),你可以選擇將其中一個分成兩塊(整數),求用這三個物體最多可以稱出多少種重量。
其實一共就13種情況,數據量又比較小,用set排除一下重復的,注意下0就好。
代碼:
#include#include #include #include #include using namespace std; int cal(int a,int b,int c) { set cnt; cnt.insert(abs(a)); cnt.insert(abs(b)); cnt.insert(abs(c)); cnt.insert(abs(a+b)); cnt.insert(abs(a+c)); cnt.insert(abs(b+c)); cnt.insert(abs(a-b)); cnt.insert(abs(a-c)); cnt.insert(abs(b-c)); cnt.insert(abs(a+b+c)); cnt.insert(abs(a+b-c)); cnt.insert(abs(a+c-b)); cnt.insert(abs(b+c-a)); cnt.erase(0); return cnt.size(); } int main() { int t,a,b,maxx; scanf(%d,&t); while(t--) { maxx=0; scanf(%d%d,&a,&b); for(int i=1;i<=a/2;i++) { maxx=max(cal(i,a-i,b),maxx); } for(int i=1;i<=b/2;i++) { maxx=max(cal(i,b-i,a),maxx); } printf(%d ,maxx); } return 0; }