166 条题解

  • -36
    @ 2021-5-24 13:48:12

    二分求解即可

    #include<bits/stdc++.h>
    #define N 100010
    using namespace std;
    int a,b;
    int s(int a,int b) {
    	int l=-1e9,r=1e9,mid;
    	while(l<r) {
        	mid=(l+r)/2;
        	if(mid==a+b)
        	    return mid;
        	else if(mid>a+b)
        	    r=mid;
        	else
        	    l=mid;
        }
    }
    int main() {
    	cin>>a>>b;
    	cout<<s(a,b);
    	return 0;
    }
    
    • -37
      @ 2021-8-8 16:35:12

      用线段树+标记永久化即可

      #include <cstdio>
      #define mid L + (R-L >> 1)
      const int maxn = 1e5+5;
      
      int n, a[maxn], m;
      int sl, sr, add;
      
      struct segtree{
      	int sum[maxn<<2], tag[maxn<<2];
      	inline int lc(int o){return o<<1;}
      	inline int rc(int o){return o<<1|1;}
      	void build(int o, int L, int R){
      		if(L == R){sum[o] = a[L];return;}
      		int M = mid;
      		build(lc(o), L, M);
      		build(rc(o), M+1, R);
      		sum[o] = sum[lc(o)] + sum[rc(o)];
      	}
      	void maintain(int o, int L, int R){
      		if(R>L){
      			sum[o] = sum[lc(o)] + sum[rc(o)];
      			sum[o] += tag[o] * (R-L+1);
      		} else {
      			sum[o] += tag[o];
      			tag[o] = 0;
      		}
      	}
      	void updata(int o, int L, int R){
      		if(sl <= L && R <= sr)tag[o] += add;
      		else{
      			int M = mid;
      			if(sl <= M)updata(lc(o), L, M);
      			if(sr > M)updata(rc(o), M+1, R);
      		}
      		maintain(o, L, R);
      	}
      	int query(int o, int L, int R, int tags){
      		if(sl <= L && R <= sr)return sum[o] + tags * (R-L+1);
      		else {
      			int M = mid, res = 0;
      			if(sl <= M)res += query(lc(o), L, M, tags+tag[o]);
      			if(sr > M)res += query(rc(o), M+1, R, tags+tag[o]);
      			return res;
      		}
      	}
      } sol;
      
      signed main(){
      	n = 1; 
      	int a, b; 
      	scanf("%d%d", &a, &b);
      	sol.build(1, 1, n);
      	add=a; sl=1; sr=1;
      	sol.updata(1, 1, 1);
      	add=b;
      	sol.updata(1, 1, 1);
      	printf("%d\n", sol.query(1, 1, n, 0));
      	return 0;
      }
      

      当然,树状数组也可以,并且更快

      #include <iostream>
      using namespace std;
      const int n = 1;
      int a, b;
      int c[500005];
      inline int lowbit(int x){
      	return x & (-x);
      }
      inline int sum(int x){
      	int ans=0;
      	for(int i=x;i>0;i-=lowbit(i))
      	ans+=c[i];
      	return ans;
      }
      void add(int x,int y){
      	for(int i=x;i<=n;i+=lowbit(i))
      	c[i]+=y;
      }
      int main(){
      	cin>>a>>b;
      	add(1, a); add(1, b);
      	printf("%d\n", sum(1));
      	return 0;
      }
      
      • @ 2022-7-25 16:33:55

        咕咕咕

      • @ 2022-7-25 16:34:54

        装摸做样的建了棵树……

    • -40
      @ 2021-9-20 21:43:22

      高精度水一发......

      #include <iostream>
      #include <string>
      #include <algorithm>
      using namespace std;
      string a,b;
      int x[1005],y[1005],ans[1005];
      int main()
      {
      	cin>>a>>b;
      	int la=a.size(),lb=b.size();
      	reverse(a.begin(),a.end());
      	reverse(b.begin(),b.end());
      	int n,i,j;
      	for(i=0;i<la;i++)    x[i]=a[i]-'0';
      	for(i=0;i<lb;i++)    y[i]=b[i]-'0';
      	int temp,jin=0;
      	for(i=0;i<1000;i++)
      	{
      		temp=x[i]+y[i]+jin;
      		if(temp>=10)
      		{
      			jin=1;
      			ans[i]=temp-10;
      		}
      		if(temp<10)
      		{
      			jin=0;
      			ans[i]=temp;
      		}
      	}
      	for(i=1000;i>=0;i--)
      		if(ans[i]!=0)
      			break;		
      	for(;i>=0;i--)
      	{
      		cout<<ans[i];
      	}
          return 0;
      }
      
      • @ 2022-7-25 16:33:37

        我也写了一份高精度,大佬帮忙看看除法哪儿错了呗

    • -49
      @ 2021-9-25 11:11:53

      输出A+B非常简单
      #include <bits/stdc++.h> using namespace std; int a,b; cin>>a>>b; cout<<a+b<<endl;//输出; return 0;//华丽结束

      • -49
        @ 2021-8-27 15:15:12

        这题挺简单的,是个入门题

        不说了,直接上code:

        #include<bits/stdc++.h>

        using namespace std;

        int a,b;//定义

        int main() {

        cin>>a>>b;//输入
        cout<<a+b;//输出
        

        }

      • -83
        @ 2021-10-4 23:13:10

        #include #define mid L + (R-L >> 1) const int maxn = 1e5+5;

        • @ 2022-2-12 12:53:35

          这位更是重量级。

        • @ 2022-6-8 9:16:18

          41 篇题解,41 个踩

      信息

      ID
      56
      时间
      1000ms
      内存
      1024MiB
      难度
      1
      标签
      递交数
      9757
      已通过
      4401
      上传者