首页 > 其他分享 >UVA10812 Beat the Spread! 题解

UVA10812 Beat the Spread! 题解

时间:2023-08-17 23:14:11浏览次数:30  
标签:Beat 题解 int Spread cases UVA10812

题目链接

思路

大家应该都知道绝对值是什么吧?

那么,我们不妨直接设 \(a\gt b\),这样就省去了一次分类讨论的麻烦,大大降低了程序的复杂度。即可得到此二元一次含参方程组:

\[\begin{cases} a+b=s\\ a-b=t \end{cases} \]

运用二元一次方程的消元法,解得:

\[\begin{cases} a=\frac{s+t}{2}\\ b=\frac{s-t}{2} \end{cases} \]

题目要求 \(a\) 和 \(b\) 必须为正整数,故当 \(s+t\) 为奇数或 \(s-t<0\) 时一定不满足要求,输出 impossible。

参考代码(请勿抄袭):

#include<bits/stdc++.h>//万能头
using namespace std;
int s,t,n;

int main(){
	scanf("%d",&n);//有n组数据
	for(int i=1;i<=n;i++){//每次数据的处理
		scanf("%d%d",&s,&t);//输入s,t
		((s+t)%2!=0||(s-t)<0)?puts("impossible"):printf("%d %d\n",(s+t)/2,(s-t)/2);//判断符不符合之前的推导,若不符合,输出impossible,否则直接用推出的公式
	}
	return 0;
}

标签:Beat,题解,int,Spread,cases,UVA10812
From: https://www.cnblogs.com/CodeFishHp/p/17639140.html

相关文章

  • UVA10678 The Grazing Cow 题解
    题目链接思路一道简单模拟题。经过模拟,我们不难发现,牛的活动轨迹是一个椭圆。根据椭圆形面积公式得到\(S=\piab\)。其中,牛可以到的最左边或最右边时\(a=\frac{l}{2}\),距离中心最远时\(b=\frac{\sqrt{l^2-d^2}}{2}\)。注意有多组测试点,每次都应输出结果并换行。......
  • UVA11714 Blind Sorting 题解
    题目链接思路一道结论题,代码实现非常简单。把此题拆分成两个小问题。在最坏的情况下,需要几次询问,才能找出最大的数。在最坏的情况下,需要几次询问,才能找出次大数。对于找出最大的数,可以模拟二分查找来解决,每次将左边界右移或右边界左移,最终得到最大数。因此在最坏的情......
  • UVA10684 The jackpot 题解
    题目链接思路一道简单模拟题。用循环模拟每次的处理。对于每次输入的数\(N\),先判断\(N\)的值,如果为\(0\),直接结束程序,避免死循环。否则就依次输入每次赢或输的钱数,再进行集中判断,获取连胜获得的最多钱数,再判断是否连败,输出结果即可。参考代码(请勿抄袭):#include<bits/stdc+......
  • P1672 [USACO05FEB] Feed Accounting S 题解
    题目链接思路一道特别简单的差分模板题,其实也有点推理的感觉。对于每头牛,我们通过两次循环使用差分倒推出在这几天内它对我们饲料消耗的贡献,进而推出每一天的饲料消耗量,从\(D\)天到现在一共吃掉的饲料数为\(F1-F2\)的那一天即是我们所求的。输入的时候依照题意模拟一次差......
  • CF276C Little Girl and Maximum Sum 题解
    题目链接题目大意通过修改序列\(a\)中的数的顺序,使\[\sum_{i=1}^q\sum_{j=l}^ra[j]\]最大,并输出它的值。思路一道简单贪心\(+\)差分,通过差分的优秀的\(O(1)\)区间修改能力帮助我们求出每个位置在询问中询问的次数,进行排序,最后次数较多的就让值较大的数来,以此类推。AC......
  • CF1769B1 Копирование файлов I 题解
    题目链接题目大意从小到大输出满足\(\frac{100\timesx}{a_i}=\frac{100\times(\sum_{j=1}^{i-1}a_j+x)}{\suma_j}\)时它们的值。思路看到数据范围\(n\leq100\),考虑暴力枚举传输每一个字节时的情况,判断\(a\)和\(b\)的值是否相等即可。对于答案,我们使用set来储......
  • SP8591 PRIMPERM - Prime Permutations 题解
    题目链接题目大意给出\(1\)个数\(n\),求\(n\)的各位拆分后重新排列组合得到新数是质数的个数。思路(欧拉筛,全排列)对于求质数,与其每组数据运行\(1\)次质数筛,不如在一开始就筛出\([1,10^7]\)内的所有质数,用bool数组统计起来,这样只需运行\(1\)次质数筛,大大节约了时间......
  • P9518 queue 题解
    题目传送门思路一道稍稍有点复杂的模拟好题。本题的关键性就在于需要实现的leave函数必须支持任意位置的删除,任意元素的查询,这对于queue或是deque是十分不利的。故本题使用另外一种STL:list实现。但是,list的查询其实也是比较耗费时间的,那么我们可以使用\(Map\)来......
  • AT_abc182_e [ABC182E] Akari题解
    题目链接思路说实话,这道题其实算模拟,还是挺简单的那种。我们可以定一个int类型的二维数组,表示网格。通过不同的数字来表示该方格内不同的类型。然后,使用枚举法模拟网格内灯泡从上、下、左、右四个方向模拟光线的运动过程,在过程中增加可被照射到的格子数量,最后输出即可。坑点......
  • SP1837 PIE - Pie 题解
    题目链接思路一道简单二分答案题。对于每个确定的派的体积,设置左边界\(l\)、右边界\(r\)和尝试值\(mid\),用\(\operatorname{check}\)函数返回在每份有\(mid\)那么多派的情况下,可以分成几份。将这些结果加起来,与应分人数进行比较,如果份数小于人数,证明每一份分的太多了,将......