Luogu P1001 A+B Problem
题目描述
输入两个整数a,b,输出它们的和(|a|,|b|<=10^9)。 注意 1、pascal使用integer会爆掉哦!
2、有负数哦!
3、c/c++的main函数必须是int类型,而且最后要return 0。这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求!
好吧,同志们,我们就从这一题开始,向着大牛的路进发。
“任何一个伟大的思想,都有一个微不足道的开始。”
输入输出格式
输入格式:
两个整数以空格分开
输出格式:
一个数
输入输出样例
- 20 30
- 50
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- struct node
- {
- int data,rev,sum;
- node *son[],*pre;
- bool judge();
- bool isroot();
- void pushdown();
- void update();
- void setson(node *child,int lr);
- }lct[];
- int top,a,b;
- node *getnew(int x)
- {
- node *now=lct+ ++top;
- now->data=x;
- now->pre=now->son[]=now->son[]=lct;
- now->sum=;
- now->rev=;
- return now;
- }
- bool node::judge(){return pre->son[]==this;}
- bool node::isroot()
- {
- if(pre==lct)return true;
- return !(pre->son[]==this||pre->son[]==this);
- }
- void node::pushdown()
- {
- if(this==lct||!rev)return;
- swap(son[],son[]);
- son[]->rev^=;
- son[]->rev^=;
- rev=;
- }
- void node::update(){sum=son[]->sum+son[]->sum+data;}
- void node::setson(node *child,int lr)
- {
- this->pushdown();
- child->pre=this;
- son[lr]=child;
- this->update();
- }
- void rotate(node *now)
- {
- node *father=now->pre,*grandfa=father->pre;
- if(!father->isroot()) grandfa->pushdown();
- father->pushdown();now->pushdown();
- int lr=now->judge();
- father->setson(now->son[lr^],lr);
- if(father->isroot()) now->pre=grandfa;
- else grandfa->setson(now,father->judge());
- now->setson(father,lr^);
- father->update();now->update();
- if(grandfa!=lct) grandfa->update();
- }
- void splay(node *now)
- {
- if(now->isroot())return;
- for(;!now->isroot();rotate(now))
- if(!now->pre->isroot())
- now->judge()==now->pre->judge()?rotate(now->pre):rotate(now);
- }
- node *access(node *now)
- {
- node *last=lct;
- for(;now!=lct;last=now,now=now->pre)
- {
- splay(now);
- now->setson(last,);
- }
- return last;
- }
- void changeroot(node *now)
- {
- access(now)->rev^=;
- splay(now);
- }
- void connect(node *x,node *y)
- {
- changeroot(x);
- x->pre=y;
- access(x);
- }
- void cut(node *x,node *y)
- {
- changeroot(x);
- access(y);
- splay(x);
- x->pushdown();
- x->son[]=y->pre=lct;
- x->update();
- }
- int query(node *x,node *y)
- {
- changeroot(x);
- node *now=access(y);
- return now->sum;
- }
- int main()
- {
- scanf("%d%d",&a,&b);
- node *A=getnew(a);
- node *B=getnew(b);
- //连边 Link
- connect(A,B);
- //断边 Cut
- cut(A,B);
- //再连边orz Link again
- connect(A,B);
- printf("%d\n",query(A,B));
- return ;
- }//这个是搞笑的,下面的是真的,但是这个也可以对。就看你看不看得懂了
- #include <iostream>
- #include <cstdio>
- using namespace std;
- int main() {
- int a,b;
- cin >> a >> b;
- cout << a+b;
- return ;
- }
Luogu P1001 A+B Problem的更多相关文章
- P1001 A+B Problem(int,long long)
题目描述 输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤109). 注意 Pascal 使用 integer 会爆掉哦! 有负数哦! C/C++ 的 main 函数必须是 int 类型,而且最后 ...
- 【题解】洛谷P1001 A+B Problem
第一篇博客,献给2020年的残夏. 静听8月的热情与安宁,在竞赛中的时光如白驹过隙. 也不惧未知的风雨,努力向着既往的通途. 题目地址 https://www.luogu.com.cn/problem ...
- 【luogu P1865 A % B Problem】 题解
题目链接:https://www.luogu.org/problemnew/show/P1865 其实就是埃拉托色尼筛素数模板... 好像每个数暴力枚举到sqrt()也可以...就算当我无聊练手罢 # ...
- P1001 A+B Problem (树链剖分)
这题考验我们构造模型的能力. 考虑构造一棵树,树上有3个节点,节点1和节点2连一条权值为a的边,节点1和节点3连一条权值为b的边,显然答案就是节点2到节点3的最短路径. 但这样还不够.考虑加法的性质, ...
- 洛谷 P1001 A+B Problem
题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 1.pascal使用integer会爆掉哦! 2.有负数哦! 3.c/c++的main函数必须是int类型,而且 ...
- 主席树 - Luogu 1001 A+B problem
看着大佬们的解法我瑟瑟发抖 我用主席树写一写吧 #include<iostream> #include<iomanip> #include<cmath> #incl ...
- 洛谷P1001 A+B Problem
这道题…………还是很简单!!! code: #include <iostream> #include <cstdio> using namespace std; int mai ...
- [Luogu] P1865 A % B Problem
题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...
- luogu P1832 A+B Problem
题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛滥趋势 ·以上纯属个人吐槽 ·给定一个正整数n ...
随机推荐
- Linux中的apache的服务命令
1. 启动apachesudo service httpd start 2. 停止服务apachesudo service httpd stop 3. 重新启动apachesudo service h ...
- Linux搭建SVN服务器(服务端)
Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...
- DB数据导出工具分享
一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...
- Android远程桌面助手
很早之前,做过一个<WinCE远程桌面助手>,在没有屏幕或者在调试LCD驱动时,发挥了很大作用,平日开发也是必备.后来还被网友用于处理一些疑难问题,如无法输入开机密码时可通过该工具远程输入 ...
- asp.net mvc视图中使用entitySet类型数据时提示出错
asp.net mvc5视图中使用entitySet类型数据时提示以下错误 检查了一下引用,发现已经引用了System.Data.Linq了,可是还是一直提示出错, 后来发现还需要在Views文件夹下 ...
- ArchSummit全球架构师峰会2017年深圳站 漫谈
自去年6月跳槽到某CDN厂,从偏向移动端开发又回到了专注后端,关于做一个移动应用独立开发者的计划暂时搁置,但是如马云所讲: "梦想还是要有的,万一实现了呢".去年下半年辛苦加班加点 ...
- Java 容器在实际项目开发中应用
前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...
- 【linux相识相知】用户及权限管理
linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...
- java的字符串操作和for循环的使用
/* "12 0 99 -7 30 4 100 13" 要求对字符串中的数值进行排序.生成一个数值从小到大新字符串. "-7 0 4 12 13 30 99 100&qu ...
- 微信小程序+OLAMI(欧拉蜜)自然语言API接口制作智能查询工具--快递、聊天、日历等
微信小程序最近比较热门,再加上自然语义理解也越来越被人关注,于是我想赶赶潮流,做一个小程序试试.想来想去快递查询应该是一种比较普遍的需求. 如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你 ...