acdream.郭式树(数学推导)

郭式树

Time Limit:2000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu

Submit Status Practice ACdream 1061

Description

郭橐驼,不知始何名。病偻,隆然伏行,有类橐驼者,故乡人号之驼。驼闻之,曰:“甚善。名我固当。”因舍其名,亦自谓橐驼云。其乡曰丰乐乡,在长安西。驼业种树,凡长安豪富人为观游及卖果者,皆争迎取养。视驼所种树,或移徙,无不活;且硕茂,蚤实以蕃。他植者虽窥伺效慕,莫能如也。   有问之,对曰:“橐驼非能使木寿且孳也,以能顺木之天,以致其性焉尔。凡植木之性,其本欲舒,其培欲平,其土欲故,其筑欲密。既然已,勿动勿虑,去不复顾。其莳也若子,其置也若弃,则其天者全,而其性得矣。故吾不害其长而已,非有能硕而茂之也。不抑耗其实而已,非有能蚤而蕃之也。他植者则不然:根拳而土易。其培之也,若不过焉则不及。苟有能反是者,则又爱之太殷,忧之太勤。旦视而暮抚,已去而复顾;甚者爪其肤以验其生枯,摇其本以观其疏密,而木之性日以离矣。虽曰爱之,其实害之;虽曰忧之,其实仇之,故不我若也,吾又何能为哉?”

相传郭橐驼又在种树了,他沿着一条笔直的马路种了3棵树A,B,C。

不过忘记了ABC从左到右的顺序,他只知道B在A的右方 步处(如果 x 为负则B在A的左方 -x 步处),C在A的右方 步处(如果 y 为负责C在A左方 -y 步处)。

他想知道BC距离多少步(答案一定为正数且不为0)。

因为他种的树太多了,他只知道 |x|, |y| (取绝对值, |1| = 1, |-2| = 2) ≤ 4611686018427387904

Input

第一行是数据组数T(T ≤ 100000)

每组数据两个整数 x , y (-4611686018427387904 ≤ x, y ≤ 4611686018427387904)

Output

对于每组数据输出一个正数代表BC间的距离

Sample Input

2
1 2
4611686018427387904 -4611686018427387904

Sample Output

1
9223372036854775808

 1 #include<stdio.h>
 2 #include<algorithm>
 3 int T ;
 4 typedef long long ll ;
 5 ll x , y ;
 6
 7 int main ()
 8 {
 9     //freopen ("a.txt" , "r" , stdin ) ;
10     scanf ("%d" , &T);
11     while (T--) {
12         scanf ("%lld%lld" , &x , &y) ;
13         if (x < y) std::swap (x , y) ;
14         if (y < 0 ) {
15             y = -y ;
16             printf ("%llu\n" , (unsigned ll) x + y) ;
17         }
18         else printf ("%llu\n" , (unsigned ll) x - y) ;
19     }
20     return 0 ;
21 }

因为刚好会有一个答案比long long 多1 , 所以灵活运用unsigned long long 就行了。

时间: 2024-11-13 07:55:24

acdream.郭式树(数学推导)的相关文章

acdream B - 郭式树 (水题 卡cin,cout, 卡LL)

题目 输入正好是long long的最大, 但是答案超long long 所以用unsigned, 不能用cin cout否则一定超时: 不能用abs(), abs 只用于整数. unsigned   int   0-4294967295   int   2147483648-2147483647 unsigned long 0-4294967295long   2147483648-2147483647long long的最大值:9223372036854775807long long的最小值

ACdream 1061:郭式树

Problem Description 郭橐驼,不知始何名.病偻,隆然伏行,有类橐驼者,故乡人号之驼.驼闻之,曰:"甚善.名我固当."因舍其名,亦自谓橐驼云. 其乡曰丰乐乡,在长安西.驼业种树,凡长安豪富人为观游及卖果者,皆争迎取养.视驼所种树,或移徙,无不活:且硕茂,蚤实以蕃.他植者虽窥伺效慕,莫能如也. 有问之,对曰:"橐驼非能使木寿且孳也,以能顺木之天,以致其性焉尔.凡植木之性,其本欲舒,其培欲平,其土欲故,其筑欲密.既然已,勿动勿虑,去不复顾.其莳也若子,其置也若弃,

acdream.18.KIDx&#39;s Triangle(数学推导)

KIDx's Triangle Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description One day, KIDx solved a math problem for middle students in seconds! And than he created this problem. N

Atitit.变量的定义&#160;获取&#160;储存&#160;物理结构&#160;基本类型简化&#160;隐式转换&#160;类型推导&#160;与底层原理&#160;attilaxDSL

Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL 1.1. $ 美元字符, php 黑头1 1.2. 默认变量的范围和声明:1 1.3. 变量的存储,储存在变量池里Map(varName,varVal)1 1.3.1. 复合变量1 1.4. 变量类型简化: 字符串 数字,  bool1 1.5. 变量自动隐式转换2 1.6. 类型推导2 2. 参考 复合变量2 1.1. $ 美元字符, php 黑头 1.2. 默认变量的范围和声明

最大熵模型中的数学推导

最大熵模型中的数学推导 查看原文,点击这里 0 引言 写完SVM之后,一直想继续写机器学习的系列,无奈一直时间不稳定且对各个模型算法的理解尚不够,所以导致迟迟未动笔.无独有偶,重写KMP得益于今年4月个人组织的算法班,而动笔继续写这个机器学习系列,正得益于今年10月组织的机器学习班. 10月26日机器学习班第6次课,身为讲师之一的邹博讲最大熵模型,他从熵的概念,讲到为何要最大熵.最大熵的推导,以及求解参数的IIS方法,整个过程讲得非常流畅,特别是其中的数学推导.晚上我把他的PPT 在微博上公开分

时域和频域变换之---傅里叶级数的数学推导

废话不多说先列提纲: 0.概述-需求分析-功能描述-受限和缺点改进+知识点预备 1.泰勒级数和傅里叶级数的本质区别,泰勒展开 2.  函数投影和向量正交 3.两个不变函数求导是本身e^x,sinx,cosx也是为什么要傅里叶转换的原因! 4.傅里叶技术推到过程 5.附录参考资料 0.有些时候,尤其是在图像处理中,矩阵运算数据量太大,特征提取量多,此时可以通过时域转频域来减少计算量,而且此转换不会损失数据完整性. 时域转频域的方法有周期函数用傅里叶技术,非周期函数(没有间断点的函数)用傅里叶转换,

Codeforces Round #360 (Div. 2) D 数学推导 E dp

Codeforces Round #360 (Div. 2) A  == B  水,但记一下: 第 n 个长度为偶数的回文数是  n+reverse(n). C    dfs 01染色,水 #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a; i<=b; ++i

part4-2 流程控制二(循环结构,while、for循环,列表推导式、生成器推导式,常用工具函数,控制循环结构,4个简单实例)

循环语句在循环条件满足时,可反复执行某一段代码,这段被重复执行的代码称为循环体.在循环体中,需要在合适的时候把循环条件设置为假,从而结束循环:否则循环一直执行下去形成死循环.循环语句通常包含如下4个部分.(1).初始化语句(init_statements):在循环开始前执行,有一条或多条语句,用于完成一些起初始化工作.(2).循环条件(test_expression):一个布尔表达式,决定是否执行循环体.(3).循环体(body_statements):循环的主体,根据循环条件是否允许,这个代码

HDU1719 Friend (数学推导)

friend numbers = 2^x + 3^y -1 1 #include<stdio.h> 2 int main() 3 { 4 __int64 a; 5 while(scanf("%I64d",&a)!=EOF) 6 { 7 if(!a) 8 { 9 printf("NO!\n"); 10 continue; 11 } 12 a+=1; 13 while(a%2==0||a%3==0) 14 { 15 if(a%2==0) a/=2;