A + B Problem最简单的方法
2023-11-24 20:40:07
发布于:广东
这一道题非常简单,话不多说直接上代码:
#include<bits/stdc++.h>
#define str string
using namespace std;
int add(int n)
{
if (n == 1) return 1;
return add(n - 1) + 1;
}
int main()
{
str s, aa, bb;
int a = 0, b = 2;
getline(cin, s);
for (int i = 0; s[i] != ' '; i++)
{
a = 0;
a += b;
int l[10];
l[a] += l[b];
aa += s[i];
}
bool fl = false;
for (int i = 0; i < s.size(); i++)
{
if (fl) bb += s[i];
if (s[i] == ' ')
{
fl = true;
}
}
for (int i = 0; i < aa.size(); i++) aa[i] -= 48;
for (int i = 0; i < bb.size(); i++) bb[i] -= 48;
int aaa = 0, bbb = 0;
for (int i = 0; i < aa.size(); i++) aaa = aaa * 10 + aa[i];
for (int i = 0; i < bb.size(); i++) bbb = bbb * 10 + bb[i];
int sum = 0, cnt;
for (int i = 1; i <= aaa; i++)
{
sum += i;
sum -= i - 1;
int rrr = 0;
rrr += sum;
cnt = rrr;
}
int sum1 = cnt;
sum1 += bbb;
cout << add(sum1);
return 0;
}
当然,还有更简单的方法:
#define A4C for (int i = 0; s[i] != ' '; i++)
#define A4B if (s[i] == ' ')
#define A4A getline(cin,
#define A49 add(sum1);
#define A48 bb.size();
#define A47 aa.size();
#define A46 s.size();
#define A45 namespace
#define A44 add(int
#define A43 l[10];
#define A42 false;
#define A41 return
#define A40 bb[i];
#define A3F aa[i];
#define A3E main()
#define A3D using
#define A3C aa[i]
#define A3B add(n
#define A3A bb[i]
#define A39 s[i];
#define A38 l[b];
#define A37 true;
#define A36 (fl)
#define A35 (int
#define A34 aaa;
#define A33 i++)
#define A32 cnt;
#define A31 cout
#define A30 bbb;
#define A2F l[a]
#define A2E rrr;
#define A2D std;
#define A2C sum1
#define A2B sum;
#define A2A bool
#define A29 bb;
#define A28 aaa
#define A27 bbb
#define A26 sum
#define A25 int
#define A24 for
#define A23 48;
#define A22 aa,
#define A21 rrr
#define A20 s);
#define A1F str
#define A1E cnt
#define A1D fl
#define A1C bb
#define A1B 2;
#define A1A i;
#define A19 if
#define A18 b;
#define A17 n)
#define A16 (n
#define A15 +=
#define A14 -=
#define A13 0,
#define A12 s,
#define A11 aa
#define A10 0;
#define AF 1)
#define AE 10
#define AD 1;
#define AC <<
#define AB <=
#define AA ==
#define A9 *
#define A8 =
#define A7 b
#define A6 i
#define A5 <
#define A4 -
#define A3 +
#define A2 a
#define A1 {
#define A0 }
#include<bits/stdc++.h>
#define str string
#define A4D A3D A45 A2D A25 A44 A17 A1 A19 A16 AA
#define A4E AF A41 AD A41 A3B A4 AF A3 AD A0
#define A4F A25 A3E A1 A1F A12 A22 A29 A25 A2 A8
#define A50 A13 A7 A8 A1B A4A A20 A4C A1 A2 A8
#define A51 A10 A2 A15 A18 A25 A43 A2F A15 A38 A11
#define A52 A15 A39 A0 A2A A1D A8 A42 A24 A35 A6
#define A53 A8 A10 A6 A5 A46 A33 A1 A19 A36 A1C
#define A54 A15 A39 A4B A1 A1D A8 A37 A0 A0 A24
#define A55 A35 A6 A8 A10 A6 A5 A47 A33 A3C A14
#define A56 A23 A24 A35 A6 A8 A10 A6 A5 A48 A33
#define A57 A3A A14 A23 A25 A28 A8 A13 A27 A8 A10
#define A58 A24 A35 A6 A8 A10 A6 A5 A47 A33 A28
#define A59 A8 A28 A9 AE A3 A3F A24 A35 A6 A8
#define A5A A10 A6 A5 A48 A33 A27 A8 A27 A9 AE
#define A5B A3 A40 A25 A26 A8 A13 A32 A24 A35 A6
#define A5C A8 AD A6 AB A34 A33 A1 A26 A15 A1A
#define A5D A26 A14 A6 A4 AD A25 A21 A8 A10 A21
#define A5E A15 A2B A1E A8 A2E A0 A25 A2C A8 A32
#define A5F A2C A15 A30 A31 AC A49 A41 A10 A0
#define A60 A4D A4E A4F A50 A51 A52 A53 A54 A55 A56
#define A61 A57 A58 A59 A5A A5B A5C A5D A5E A5F
#define A62 A60 A61
#define A63(__FOX__) __FOX__
A63(A62)
全部评论 6
最短:
#include<cstdio> int main(){printf("5");}
较长:
#include<algorithm> #include<bitset> #include<complex> #include<deque> #include<exception> #include<fstream> #include<functional> #include<iomanip> #include<ios> #include<iosfwd> #include<iostream> #include<istream> #include<iterator> #include<limits> #include<list> #include<locale> #include<map> #include<memory> #include<new> #include<numeric> #include<ostream> #include<queue> #include<set> #include<sstream> #include<stack> #include<stdexcept> #include<streambuf> #include<string> #include<typeinfo> #include<utility> #include<valarray> #include<vector> #if __cplusplus >= 201103L #include<array> #include<atomic> #include<chrono> #include<condition_variable> #include<forward_list> #include<future> #include<initializer_list> #include<mutex> #include<random> #include<ratio> #include<regex> #include<scoped_allocator> #include<system_error> #include<thread> #include<tuple> #include<typeindex> #include<type_traits> #include<unordered_map> #include<unordered_set> #endif using namespace std; int RAND_1(long long a,long long b){ long long n = a + b; cout << n; return 0; } int RAND_2(string a, string b, int n[500], int m[500], int ans[501]){ for(int i = 0; i < a.size(); i++) n[i] = a[a.size() - i - 1] - '0'; for(int i = 0; i < b.size(); i++) m[i] = b[b.size() - i - 1] - '0'; int len_maxn = max(a.size(), b.size()) + 1; for(int i = 0; i < len_maxn; i++) { ans[i] = n[i] + m[i] + ans[i]; if(ans[i] > 9) { ans[i + 1]++; ans[i] = ans[i] % 10; } } while(ans[len_maxn - 1] == 0 && len_maxn > 0) len_maxn--; for(int i = len_maxn - 1; i >= 0; i--) cout << ans[i]; return 0; } int n[500], m[500],c[501]; int main(){ long long a , b; int x; x = 1 + rand() % 2; if(x == 1){ cin >> a >> b; RAND_1(a,b); } string z , y; if(x == 2){ cin >> z >> y; RAND_2(z , y , n , m, c); } return 0; }
2025-05-12 来自 浙江
0long
//一颗资瓷区间加、区间翻转、区间求和的Splay
#include <bits/stdc++.h>
#define ll long long
#define N 100000
using namespace std;
int sz[N], rev[N], tag[N], sum[N], ch[N][2], fa[N], val[N];
int n, m, rt, x;
void push_up(int x){
sz[x] = sz[ch[x][0]] + sz[ch[x][1]] + 1;
sum[x] = sum[ch[x][1]] + sum[ch[x][0]] + val[x];
}
void push_down(int x){
if(rev[x]){
swap(ch[x][0], ch[x][1]);
if(ch[x][1]) rev[ch[x][1]] ^= 1;
if(ch[x][0]) rev[ch[x][0]] ^= 1;
rev[x] = 0;
}
if(tag[x]){
if(ch[x][1]) tag[ch[x][1]] += tag[x], sum[ch[x][1]] += tag[x];
if(ch[x][0]) tag[ch[x][0]] += tag[x], sum[ch[x][0]] += tag[x];
tag[x] = 0;
}
}
void rotate(int x, int &k){
int y = fa[x], z = fa[fa[x]];
int kind = ch[y][1] == x;
if(y == k) k = x;
else ch[z][ch[z][1]==y] = x;
fa[x] = z; fa[y] = x; fa[ch[x][!kind]] = y;
ch[y][kind] = ch[x][!kind]; ch[x][!kind] = y;
push_up(y); push_up(x);
}
void splay(int x, int &k){
while(x != k){
int y = fa[x], z = fa[fa[x]];
if(y != k) if(ch[y][1] == x ^ ch[z][1] == y) rotate(x, k);
else rotate(y, k);
rotate(x, k);
}
}
int kth(int x, int k){
push_down(x);
int r = sz[ch[x][0]]+1;
if(k == r) return x;
if(k < r) return kth(ch[x][0], k);
else return kth(ch[x][1], k-r);
}
void split(int l, int r){
int x = kth(rt, l), y = kth(rt, r+2);
splay(x, rt); splay(y, ch[rt][1]);
}
void rever(int l, int r){
split(l, r);
rev[ch[ch[rt][1]][0]] ^= 1;
}
void add(int l, int r, int v){
split(l, r);
tag[ch[ch[rt][1]][0]] += v;
val[ch[ch[rt][1]][0]] += v;
push_up(ch[ch[rt][1]][0]);
}
int build(int l, int r, int f){
if(l > r) return 0;
if(l == r){
fa[l] = f;
sz[l] = 1;
return l;
}
int mid = l + r >> 1;
ch[mid][0] = build(l, mid-1, mid);
ch[mid][1] = build(mid+1, r, mid);
fa[mid] = f;
push_up(mid);
return mid;
}
int asksum(int l, int r){
split(l, r);
return sum[ch[ch[rt][1]][0]];
}
int main(){
//总共两个数
n = 2;
rt = build(1, n+2, 0);//建树
for(int i = 1; i <= n; i++){
scanf("%d", &x);
add(i, i, x);//区间加
}
rever(1, n);//区间翻转
printf("%d\n", asksum(1, n));//区间求和
return 0;
}2025-05-23 来自 浙江
0
还有高手?!
2024-12-29 来自 北京
0《简单》
2023-12-31 来自 浙江
0第二个因该是利用宏定义预处理命令在每一个节点展开计算。贪心:你当我不存在?
2023-11-02 来自 浙江
0官方整活
2023-08-11 来自 浙江
0假官方
2024-04-04 来自 浙江
1
I think you deliberately want to make simple topics difficult.
2023-07-26 来自 广东
0When I see this file,I feel very confused
2023-07-26 来自 广东
0
有帮助,赞一个