激动的心,颤抖的手,一个刚刚入门的OI萌新点开了这道题。但是,他太萌新了,以至于萌新关爱题都不会写,所以,他打开了这篇题解。
这篇题解致力于引导萌新踏出万里编程路上的第一步,也是最后一步doge 因为应该不会有大佬闲的没事看这道题的题解,所以我们就写的简单一点吧!本来还想写一个模拟吓唬吓唬萌新
哇,这道题好难啊!不过我们也不用灰心,因为比这道题难得多了去了 在这里,我要告诉你们一个特别特别有用的东西:+!没错,这就是传说中的加好,我们只需要把它放在两个数中间,就能执行加法运算啦,没错,就是和数学中一样呢!对了,如果你不会基础语法的话还是不建议看这篇题解doge。
我们设一个加数为a,另一个为b,然后输出a+b这一坨就行啦,哦,忘了说了#include<bits/stdc++.h>
这个是万能头文件,非常有用,每段代码前面都要加它,或者你想手打一大堆头文件我也没意见。我们可以得到如下代码#include<bits/stdc++.h>
using namespace std;//很有必要的部分
int main()
{
int a,b;//定义部分
cin>>a>>b;//输入部分
cout<<a+b;//输出答案部分
return 0;//开香槟部分
}
你用这个不行么??
#include<bits/stdc++.h>
using namespace std;//很有必要的部分
int main()
{
int a,b;//定义部分
cin>>a>>b;//输入部分
cout<<a+b;//输出答案部分
return 0;//开香槟部分
}
线段树版作死代码:
#include<bits/stdc++.h>
#define ll long long
#define PII pair<int,int>
using namespace std;
const int N=10;
const ll INF=0x3f3f3f3f3f3f3f3f;
const double EPS=10e-6;
char op;
ll n,m,a[N],x,y,k;
ll sum[N],tag[N];
void pushup(int o){
sum[o]=sum[o<<1]+sum[o<<1|1];
}
void maketag(int o,ll len,ll x){
tag[o]+=x;
sum[o]+=len*x;
}
void pushdown(int o,int l,int r){
ll mid=l+r>>1;
maketag(o<<1,mid-l+1,tag[o]);
maketag(o<<1|1,r-mid,tag[o]);
tag[o]=0;
}
void build(int o,int l,int r){
if(l==r){
sum[o]=a[l];
return;
}
ll mid=l+r>>1;
build(o<<1,l,mid);
build(o<<1|1,mid+1,r);
pushup(o);
}
void update(int o,int l,int r){
if(x<=l&&r<=y){
maketag(o,r-l+1,k);
return;
}
ll mid=l+r>>1;
pushdown(o,l,r);
if(x<=mid)update(o<<1,l,mid);
if(y>mid)update(o<<1|1,mid+1,r);
pushup(o);
}
ll query(int o,int l,int r){
if(x<=l&&r<=y)return sum[o];
ll mid=l+r>>1,ans=0;
pushdown(o,l,r);
if(x<=mid)ans+=query(o<<1,l,mid);
if(y>mid)ans+=query(o<<1|1,mid+1,r);
return ans;
}
void solve(){
n=1;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,1,n);
cin>>k;
x=1,y=1;
update(1,1,n);
cout<<query(1,1,n);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T=1;
// cin>>T;
while(T--)solve();
return 0;
}
你怎么突然在论坛复活了。