WaltVBAlston @ 2020-02-26 12:15:57
第一次用lower_bound,编译错误
我看网上的大佬都是这么写的
谁能告诉我为什么编译错误?
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int a[100001];
vector <int> v;
int n;
int x;
bool cmp(int o,int z)
{
return o<z;
}
int main()
{
cin>>n;
v.push_back(0);
for(int i=1;i<=n;i++)
{
int m;
cin>>m;
a[i]=m;
v.push_back(m);
}
sort(a+1,a+n+1,cmp);
sort(v.begin()+1,v.end(),cmp);
cin>>x;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=1;i<=v.size()-1;i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
int p=lower_bound(a+1,a+n+1,x);
cout<<p<<endl;
p=lower_bound(v.begin()+1,v.end(),x);
cout<<p<<endl;
return 0;
}
by Contemptuous @ 2020-03-30 15:08:08
@Andy_2006 写简单一点
by SlimMathers @ 2020-04-12 11:55:34
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1000]={0},b[1000]={0},c[1001]={0};
string str1,str2; cin>>str1>>str2;
int len1 = str1.length(),len2 = str2. length();
for(int i = 0;i<len1;i++)
a[i] = str1[len1-1-i] - '0';
for(int i = 0;i<len2;i++)
b[i] = str2[len2-1-i] - '0';
int maxl = len1> len2?len1:len2; //相加后的位数。
for(int i = 0;i<maxl;i++){
c[i] += a[i]+b[i];
if (c[i] >= 10){
// 处理进位。
c[i]%=10; ++c[i+1] ;
}
}
for(int i=maxl-1;i>=0;i--) cout<<c[i];
return 0;
}
给一个高精度加法
by jinqinxin @ 2020-04-15 09:48:22
太长了
by TLE_Forever @ 2020-04-17 12:41:56
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}
请问为什么要这么复杂的解法……
搞不懂
by TLE_Forever @ 2020-04-17 12:45:01
@SlimMathers 为什么要高精度……
int
都可以存储得下来吧……实在不行long long
一定可以的吧……题目数据要求是
by SlimMathers @ 2020-04-17 13:56:12
@Kenny_Plus 我刚好学到了高精度。。
by chaichunyang @ 2020-05-14 20:29:17
by 王子铖123 @ 2020-08-22 16:09:00
这么长有必要吗
by 洛谷SB @ 2020-10-17 16:13:20
你为什么要写这么长???