题目描述

输入两个整数a,b,输出它们的和(|a|,|b|<=10^9)。 注意 1、pascal使用integer会爆掉哦!

2、有负数哦!

3、c/c++的main函数必须是int类型,而且最后要return 0。这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求!

好吧,同志们,我们就从这一题开始,向着大牛的路进发。

“任何一个伟大的思想,都有一个微不足道的开始。”

输入输出格式

输入格式:

两个整数以空格分开

输出格式:

一个数

输入输出样例

输入样例#1:

  1. 20 30
输出样例#1:

  1. 50
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cstring>
  5. using namespace std;
  6. struct node
  7. {
  8. int data,rev,sum;
  9. node *son[],*pre;
  10. bool judge();
  11. bool isroot();
  12. void pushdown();
  13. void update();
  14. void setson(node *child,int lr);
  15. }lct[];
  16. int top,a,b;
  17. node *getnew(int x)
  18. {
  19. node *now=lct+ ++top;
  20. now->data=x;
  21. now->pre=now->son[]=now->son[]=lct;
  22. now->sum=;
  23. now->rev=;
  24. return now;
  25. }
  26. bool node::judge(){return pre->son[]==this;}
  27. bool node::isroot()
  28. {
  29. if(pre==lct)return true;
  30. return !(pre->son[]==this||pre->son[]==this);
  31. }
  32. void node::pushdown()
  33. {
  34. if(this==lct||!rev)return;
  35. swap(son[],son[]);
  36. son[]->rev^=;
  37. son[]->rev^=;
  38. rev=;
  39. }
  40. void node::update(){sum=son[]->sum+son[]->sum+data;}
  41. void node::setson(node *child,int lr)
  42. {
  43. this->pushdown();
  44. child->pre=this;
  45. son[lr]=child;
  46. this->update();
  47. }
  48. void rotate(node *now)
  49. {
  50. node *father=now->pre,*grandfa=father->pre;
  51. if(!father->isroot()) grandfa->pushdown();
  52. father->pushdown();now->pushdown();
  53. int lr=now->judge();
  54. father->setson(now->son[lr^],lr);
  55. if(father->isroot()) now->pre=grandfa;
  56. else grandfa->setson(now,father->judge());
  57. now->setson(father,lr^);
  58. father->update();now->update();
  59. if(grandfa!=lct) grandfa->update();
  60. }
  61. void splay(node *now)
  62. {
  63. if(now->isroot())return;
  64. for(;!now->isroot();rotate(now))
  65. if(!now->pre->isroot())
  66. now->judge()==now->pre->judge()?rotate(now->pre):rotate(now);
  67. }
  68. node *access(node *now)
  69. {
  70. node *last=lct;
  71. for(;now!=lct;last=now,now=now->pre)
  72. {
  73. splay(now);
  74. now->setson(last,);
  75. }
  76. return last;
  77. }
  78. void changeroot(node *now)
  79. {
  80. access(now)->rev^=;
  81. splay(now);
  82. }
  83. void connect(node *x,node *y)
  84. {
  85. changeroot(x);
  86. x->pre=y;
  87. access(x);
  88. }
  89. void cut(node *x,node *y)
  90. {
  91. changeroot(x);
  92. access(y);
  93. splay(x);
  94. x->pushdown();
  95. x->son[]=y->pre=lct;
  96. x->update();
  97. }
  98. int query(node *x,node *y)
  99. {
  100. changeroot(x);
  101. node *now=access(y);
  102. return now->sum;
  103. }
  104. int main()
  105. {
  106. scanf("%d%d",&a,&b);
  107. node *A=getnew(a);
  108. node *B=getnew(b);
  109. //连边 Link
  110. connect(A,B);
  111. //断边 Cut
  112. cut(A,B);
  113. //再连边orz Link again
  114. connect(A,B);
  115. printf("%d\n",query(A,B));
  116. return ;
  117. }//这个是搞笑的,下面的是真的,但是这个也可以对。就看你看不看得懂了
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. int a,b;
  8. cin >> a >> b;
  9. cout << a+b;
  10. return ;
  11. }

Luogu P1001 A+B Problem的更多相关文章

  1. P1001 A+B Problem(int,long long)

    题目描述 输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤109). 注意 Pascal 使用 integer 会爆掉哦! 有负数哦! C/C++ 的 main 函数必须是 int 类型,而且最后 ...

  2. 【题解】洛谷P1001 A+B Problem

    第一篇博客,献给2020年的残夏. 静听8月的热情与安宁,在竞赛中的时光如白驹过隙. 也不惧未知的风雨,努力向着既往的通途. 题目地址 https://www.luogu.com.cn/problem ...

  3. 【luogu P1865 A % B Problem】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1865 其实就是埃拉托色尼筛素数模板... 好像每个数暴力枚举到sqrt()也可以...就算当我无聊练手罢 # ...

  4. P1001 A+B Problem (树链剖分)

    这题考验我们构造模型的能力. 考虑构造一棵树,树上有3个节点,节点1和节点2连一条权值为a的边,节点1和节点3连一条权值为b的边,显然答案就是节点2到节点3的最短路径. 但这样还不够.考虑加法的性质, ...

  5. 洛谷 P1001 A+B Problem

    题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 1.pascal使用integer会爆掉哦! 2.有负数哦! 3.c/c++的main函数必须是int类型,而且 ...

  6. 主席树 - Luogu 1001 A+B problem

    看着大佬们的解法我瑟瑟发抖 我用主席树写一写吧 #include<iostream> #include<iomanip> #include<cmath> #incl ...

  7. 洛谷P1001 A+B Problem

    这道题…………还是很简单!!! code: #include <iostream> #include <cstdio> using namespace std; int mai ...

  8. [Luogu] P1865 A % B Problem

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  9. luogu P1832 A+B Problem

    题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛滥趋势 ·以上纯属个人吐槽 ·给定一个正整数n ...

随机推荐

  1. Linux中的apache的服务命令

    1. 启动apachesudo service httpd start 2. 停止服务apachesudo service httpd stop 3. 重新启动apachesudo service h ...

  2. Linux搭建SVN服务器(服务端)

    Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...

  3. DB数据导出工具分享

    一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...

  4. Android远程桌面助手

    很早之前,做过一个<WinCE远程桌面助手>,在没有屏幕或者在调试LCD驱动时,发挥了很大作用,平日开发也是必备.后来还被网友用于处理一些疑难问题,如无法输入开机密码时可通过该工具远程输入 ...

  5. asp.net mvc视图中使用entitySet类型数据时提示出错

    asp.net mvc5视图中使用entitySet类型数据时提示以下错误 检查了一下引用,发现已经引用了System.Data.Linq了,可是还是一直提示出错, 后来发现还需要在Views文件夹下 ...

  6. ArchSummit全球架构师峰会2017年深圳站 漫谈

    自去年6月跳槽到某CDN厂,从偏向移动端开发又回到了专注后端,关于做一个移动应用独立开发者的计划暂时搁置,但是如马云所讲: "梦想还是要有的,万一实现了呢".去年下半年辛苦加班加点 ...

  7. Java 容器在实际项目开发中应用

    前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...

  8. 【linux相识相知】用户及权限管理

    linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...

  9. java的字符串操作和for循环的使用

    /* "12 0 99 -7 30 4 100 13" 要求对字符串中的数值进行排序.生成一个数值从小到大新字符串. "-7 0 4 12 13 30 99 100&qu ...

  10. 微信小程序+OLAMI(欧拉蜜)自然语言API接口制作智能查询工具--快递、聊天、日历等

    微信小程序最近比较热门,再加上自然语义理解也越来越被人关注,于是我想赶赶潮流,做一个小程序试试.想来想去快递查询应该是一种比较普遍的需求. 如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你 ...