1323 条题解
-
-1lyl913 LV 8 @ 2020-05-11 08:34:59
""" author lyl913 """ a, b = input().split() print(int(a)+int(b))
大致思想:
1.输入a和b(此时是字符串形式,需要split分割)
2.输出a+b(注意需要转换成int类型再输出)
-
-12020-05-10 09:11:17@
define真好用……
#include <bits/stdc++.h> #define std using namespace std #define main int main() #define then ; #define start { #define integer int #define also , #define input cin>> #define to >> #define output cout<< #define plus + #define finish return 0 #define over } std then main start integer a also b then input a to b then output a plus b then finish then over
-
-12020-05-09 12:05:59@
我谔谔
-
-12020-04-27 22:32:18@
这个解法不一定能AC,看你运气了。
#include<bits/stdc++.h> #include<bits/extc++.h> #include<cstdlib> #include<ctime> using namespace std; int main(){ int a,b,c; cin>>a>>b; srand((int)time(0));//随即种子 while(1){//可怕的循环 c=rand()%65536;//65536:题目给的两数之和的最大范围 if(c-a==b){//如果找到了答案 cout<<c; return 0; } } }
-
-12020-04-03 11:01:30@
各位大神都用网络流啊 最短路啊解这道题,那么既然是可以求最短路,为什么不可以从树上跑呢?
怀着这种想法,我冥思苦想(划掉),发现,###我可以用LCA做这道题啊~
然而鄙人不才,什么Tarjan啊ST表啊都不会,只会用一个倍增来求LCA,所以权当抛砖引玉吧。
不过我估计应该没什么想学LCA的来这道题看LCA题解吧。所以多半是写着玩~~
先说说思路(这还用说?):
建一个有三个节点的树,1为树根,2 3分别是左右儿子。
其中1 2之间的距离为a,2 3之间的距离为b,然后求1 2的LCA,和分别到LCA的距离,加起来就是1->3的最短路
其实就是题目中所求的a+b了
好吧闲话不说 上代码了(多半是个LCA的板子了):#include<cstdio> //头文件 #define NI 2 //从来不喜欢算log所以一般用常数 不知道算不算坏习惯 因为3个节点 所以log3(当然以2为底)上取整得2 struct edge { int to,next,data; //分别表示边的终点,下一条边的编号和边的权值 }e[30]; //邻接表,点少边少开30是为了浪啊 int v[10],d[10],lca[10][NI+1],f[10][NI+1],tot=0; //数组开到10依然为了浪 //数组还解释嘛,v表示第一条边在邻接表中的编号,d是深度,lca[x][i]表示x向上跳2^i的节点,f[x][i]表示x向上跳2^i的距离和 void build(int x,int y,int z) //建边 { e[++tot].to=y; e[tot].data=z; e[tot].next=v[x]; v[x]=tot; e[++tot].to=x; e[tot].data=z; e[tot].next=v[y]; v[y]=tot; } void dfs(int x) //递归建树 { for(int i=1;i<=NI;i++) //懒,所以常数懒得优化 f[x][i]=f[x][i-1]+f[lca[x][i-1]][i-1], lca[x][i]=lca[lca[x][i-1]][i-1]; //建树的同时进行预处理 for(int i=v[x];i;i=e[i].next) //遍历每个连接的点 { int y=e[i].to; if(lca[x][0]==y) continue; lca[y][0]=x; //小技巧:lca[x][0]即为x的父亲~~(向上跳2^0=1不就是父节点嘛) f[y][0]=e[i].data; d[y]=d[x]+1; dfs(y); //再以这个节点为根建子树【这里真的用得到嘛??】 } } int ask(int x,int y) //询问,也是关键 { if(d[x]<d[y]) {int t=x;x=y;y=t;} //把x搞成深的点 int k=d[x]-d[y],ans=0; for(int i=0;i<=NI;i++) if(k&(1<<i)) //若能跳就把x跳一跳 ans+=f[x][i], //更新信息 x=lca[x][i]; for(int i=NI;i>=0;i--) //不知道能不能正着循环,好像倒着优,反正记得倒着就好了 if(lca[x][i]!=lca[y][i]) //如果x跳2^i和y跳2^j没跳到一起就让他们跳 ans+=f[x][i]+f[y][i], x=lca[x][i],y=lca[y][i]; return ans+f[x][0]+f[y][0]; //跳到LCA上去(每步跳的时候都要更新信息,而且要在跳之前更新信息哦~) } int main() { int a,b; scanf("%d%d",&a,&b); build(1,2,a); build(1,3,b); //分别建1 2、1 3之间的边 dfs(1); //以1为根建树 printf("%d",ask(2,3)); //求解2 3到它们的LCA的距离和并输出 }
-
-12020-03-10 22:40:09@
啦啦啦啦啦
#include <iostream>using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
} -
-12020-03-10 22:39:41@
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
} -
-12020-03-02 14:47:38@
PHP:
<?phpfscanf(STDIN, "%d %d\n", \(a, \)b);
echo (\(a + \)b) . "\n"; -
-12020-02-29 11:52:06@
无关这个
死循环
package mainimport "fmt"
func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}
Go语言 -
-12020-02-29 11:43:14@
发现了函数后用了函数:
#include<iostream>
using namespace std;
int s(int x,int y){
return x+y;}
int main(){
int a,b;
cin>>a>>b;
cout<<s(a,b);
return 0;} -
-12020-02-02 18:31:47@
#include <stdio.h> int main () { int a,b; scanf ("%d%d",&a,&b); printf ("%d\n",a+b); return 0; }
-
-12020-02-02 15:00:19@
什么都不想说,上代码(其实这种题。。。发不发题解都没啥必要)(划掉);
#include<iostream> using namespace std; int main(){ int a,b; cin>>a>>b; cout<<a+b<<endl; return 0; }
-
-12020-01-03 20:31:47@
#include <bits/stdc++.h> int main(int a, int b, int k) { if (k) scanf("%d%d", &a, &b); b == 0 ? printf("%d\n", a) : main(a ^ b, (a & b) << 1, 0); }
main递归 + 模拟位运算
-
-12019-11-21 12:29:00@
216
4165 -
-12019-11-20 13:03:52@
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b;
return 0;
} -
-12019-11-17 10:09:24@
作死ing
#include<bits/stdc++.h> using namespace std; char s[10001],ss[10001]; int a[10001],b[10001],c[10001],j; bool x=false; int main() { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); scanf("%s%s",s,ss); a[0]=strlen(s); b[0]=strlen(ss); for(int i=1; i<=a[0]; i++) a[i]=s[a[0]-i]-'0'; for(int i=1; i<=b[0]; i++) b[i]=ss[b[0]-i]-'0'; for(j=1; j<=max(a[0],b[0])+1; j++) { c[j]=a[j]+b[j]; if(c[j]>=10) { c[j]%=10; a[j+1]++; } } c[0]=j; if(c[j+1]>0) c[0]++; for(int i=c[0]; i>=1; i--) { if(x==false&&c[i]==0) continue; x=true; cout<<c[i]; } printf("\n"); return 0; }
-
-12019-11-17 10:07:35@
本蒟蒻的第一篇题解
结构体+选排
#include<bits/stdc++.h> using namespace std; struct eee { char xibu,ganbu; string name; int pjcj,pycj,lws; long long RMB=0; }; eee a[101]; int n; long long sum=0; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].name; cin>>a[i].pjcj>>a[i].pycj; cin>>a[i].ganbu>>a[i].xibu; cin>>a[i].lws; if(a[i].lws>=1&&a[i].pjcj>=81) a[i].RMB+=8000; if(a[i].pjcj>85&&a[i].pycj>80) a[i].RMB+=4000; if(a[i].pjcj>90) a[i].RMB+=2000; if(a[i].pjcj>85&&a[i].xibu=='Y') a[i].RMB+=1000; if(a[i].ganbu=='Y'&&a[i].pycj>80) a[i].RMB+=850; sum+=a[i].RMB; } for(int i=1;i<=n-1;i++) for(int j=i+1;j<=n;j++) if(a[i].RMB<a[j].RMB) { swap(a[i].ganbu,a[j].ganbu); swap(a[i].lws,a[j].lws); swap(a[i].name,a[j].name); swap(a[i].pjcj,a[j].pjcj); swap(a[i].pycj,a[j].pycj); swap(a[i].RMB,a[j].RMB); swap(a[i].xibu,a[j].xibu); } cout<<a[1].name<<endl; cout<<a[1].RMB<<endl; cout<<sum<<endl; return 0; }
-
-12019-11-13 21:30:54@
dalao们求一发模拟退火的题解OuO
-
-12019-10-26 14:17:06@
本题链接:https://vijos.org/p/1000
JieKe08的第1篇题解!for beginners,特设此题,^_^
#include<bits/stdc++.h>//多美妙的万能头 using namespace std; int main() { int a,b;//定义变量 cin>>a>>b;//输入 cout<<a+b;//输出,最后的换行可有可无 return 0;//题目给的代码没有这个,但考试最好加上 }
感谢您花费1分钟阅读鄙人的题解!
-
-12019-09-25 20:22:56@
快读你们懂得吧
cpp
#include<bits/stdc++.h>
using namespace std;
int a,b;
inline int read(){
int ret=0,f=1;char ch=getchar();
while(!isdigit(ch)) f=(ch=='-'?-f:f),ch=getchar();
while(isdigit(ch)) ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
int main(){
a=read(),b=read();
printf("%d\n",a+b);
return 0;
}
信息
- ID
- 1000
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 74450
- 已通过
- 28496
- 通过率
- 38%
- 被复制
- 223