P1326 足球网页链接P1326 足球题目描述我们当中有很多热爱中国足球的同学我们都知道中超中国足球超级联赛的规则一场比赛中若获胜即你的得分严格大于对手得分则获得3 33的积分若打平即你的得分等于对手得分则获得1 11分若失败即你的得分严格小于对手得分获得0 00积分。这个问题很简单假设N NN轮比赛中你一共攻入S SS个球丢掉T TT个球那么你可能获得的最大得分和最小得分是多少输入格式多组数据每组数据一行三个整数S , T , N S,T,NS,T,N10 9 ≥ S , T ≥ 0 10^9\ge S,T \ge 0109≥S,T≥010 9 ≥ N ≥ 1 10^9\ge N \ge 1109≥N≥1。每个测试点内数据组数不超过3 × 10 4 3\times 10^43×104组。输出格式对于每组数据输出一行两个整数表示最大得分和最小得分。输入输出样例 #1输入 #11 1 1 1 1 2输出 #11 1 3 2解题思路本题核心是贪心策略通过极简的公式化计算O ( 1 ) O(1)O(1)求解最大/最小积分完美适配超大数值、多组查询的约束。最大积分优先安排最多胜利每场消耗1个进球剩余进球全部用于平局绝不安排失利胜利场数由总进球数和总场次决定剩余场次能平则平累加积分。最小积分优先安排最多失利每场消耗1个丢球剩余丢球全部继续失利绝不安排胜利无法失利的场次只能平局累加最低积分。全程无遍历、无复杂运算单组查询计算量为常数效率拉满。总结核心逻辑贪心分配进球/丢球最大分优先赢平局最小分优先输平局。关键操作分别计算最优胜负场数直接公式结算积分。效率保障常数级计算轻松应对10 9 10^9109级数值和3 × 10 4 3×10^43×104组查询。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;ll s,t,n;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);while(scanf(%lld%lld%lld,s,t,n)!EOF){ll a10,a20;if(sn){a13*sn-s-1;if(!t)a1;}else{a13*max(n-1,min(n,s-t));if(n-st1)a1;}if(st)a23max(0LL,n-t-1);elsea2min(3max(0LL,n-t-1),max(n-ts,0LL));printf(%lld %lld\n,a1,a2);}return0;}
P1326 足球 【洛谷算法习题】
P1326 足球网页链接P1326 足球题目描述我们当中有很多热爱中国足球的同学我们都知道中超中国足球超级联赛的规则一场比赛中若获胜即你的得分严格大于对手得分则获得3 33的积分若打平即你的得分等于对手得分则获得1 11分若失败即你的得分严格小于对手得分获得0 00积分。这个问题很简单假设N NN轮比赛中你一共攻入S SS个球丢掉T TT个球那么你可能获得的最大得分和最小得分是多少输入格式多组数据每组数据一行三个整数S , T , N S,T,NS,T,N10 9 ≥ S , T ≥ 0 10^9\ge S,T \ge 0109≥S,T≥010 9 ≥ N ≥ 1 10^9\ge N \ge 1109≥N≥1。每个测试点内数据组数不超过3 × 10 4 3\times 10^43×104组。输出格式对于每组数据输出一行两个整数表示最大得分和最小得分。输入输出样例 #1输入 #11 1 1 1 1 2输出 #11 1 3 2解题思路本题核心是贪心策略通过极简的公式化计算O ( 1 ) O(1)O(1)求解最大/最小积分完美适配超大数值、多组查询的约束。最大积分优先安排最多胜利每场消耗1个进球剩余进球全部用于平局绝不安排失利胜利场数由总进球数和总场次决定剩余场次能平则平累加积分。最小积分优先安排最多失利每场消耗1个丢球剩余丢球全部继续失利绝不安排胜利无法失利的场次只能平局累加最低积分。全程无遍历、无复杂运算单组查询计算量为常数效率拉满。总结核心逻辑贪心分配进球/丢球最大分优先赢平局最小分优先输平局。关键操作分别计算最优胜负场数直接公式结算积分。效率保障常数级计算轻松应对10 9 10^9109级数值和3 × 10 4 3×10^43×104组查询。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;ll s,t,n;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);while(scanf(%lld%lld%lld,s,t,n)!EOF){ll a10,a20;if(sn){a13*sn-s-1;if(!t)a1;}else{a13*max(n-1,min(n,s-t));if(n-st1)a1;}if(st)a23max(0LL,n-t-1);elsea2min(3max(0LL,n-t-1),max(n-ts,0LL));printf(%lld %lld\n,a1,a2);}return0;}