水题就直接放代码了。
A | 做游戏 |
A题链接https://ac.nowcoder.com/acm/contest/3003/A
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll a,b,c,x,y,z,sum=0;
cin>>a>>b>>c>>x>>y>>z;
if(a>=y)
{
sum+=y;
}
else
{
sum+=a;
}
if(b>=z)
{
sum+=z;
}
else
{
sum+=b;
}
if(c>=x)
{
sum+=x;
}
else
{
sum+=c;
}
cout<<sum<<endl;
return 0;
}
B | 排数字 |
B题链接https://ac.nowcoder.com/acm/contest/3003/B
暴力统计1和0的个数然后进行比较。
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
string s;
int main()
{
int n,v6=0,v1=0;
cin>>n>>s;
for(int i=0;i<n;i++)
{
if(s[i]=='6')
{
v6++;
}
if(s[i]=='1')
{
v1++;
}
}
if(v1>=v6)
{
if(v6!=0)
cout<<v6-1<<endl;
else
{
cout<<0<<endl;
}
}
else
{
cout<<v1<<endl;
}
return 0;
}
E |
思路就是两边同时平方 然后暴力查找
链接:https://ac.nowcoder.com/acm/contest/3003/E
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=1e9+7;
int pan(ll xx)
{
ll sum=0;
for(ll i=1;i<sqrt(xx);i++)
{
if(xx%i==0)
{
sum+=2;
}
}
return sum;
}
int main()
{
ll n,num=0;
cin>>n;
for(ll i=1;i*i<=n;i++)
{
num+=pan(i*i);
num++;
}
cout<<num<<endl;
}
F | 拿物品 |
https://ac.nowcoder.com/acm/contest/3003/F
题解:主要为贪心算法,贪心的思路为a+b优先取最大的,为什么呢??你可以想 这个物品两种属性 你拿人家的a然后人家少了个b 等于你赚了a+b所以贪心是根据a+b优先选取最大的
代码
include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=1e9+7;
struct x
{
ll num;
ll c;
}xx[1000000];
bool cmp(x a,x b)
{
return a.c>b.c;
}
ll a[1000000],b[1000000];
int main()
{
ll n;
cin>>n;
for(ll i=1;i<=n;i++)
{
cin>>a[i];
}
for(ll i=1;i<=n;i++)
{
cin>>b[i];
}
for(ll i=1;i<=n;i++)
{
xx[i].num=i;
xx[i].c=a[i]+b[i];
}
sort(xx+1,xx+n+1,cmp);
for(ll i=1;i<=n;i+=2)
{
cout<<xx[i].num<<" ";
}
cout<<endl;
for(ll i=2;i<=n;i+=2)
{
cout<<xx[i].num<<" ";
}
cout<<endl;
}
G | 判正误 |
直接套用快速幂 然后要记着对1e9+7取余数就好了
https://ac.nowcoder.com/acm/contest/3003/G
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=1e9+7;
inline int qq( int a, int b )
{
int tmp = 1;
while(b)
{
if(b & 1)
tmp = 1ll * tmp * a % mod;
b >>= 1;
a = 1ll * a * a % mod;
}
return tmp;
}
int main()
{
ll n,num;
cin>>n;
while(n--)
{
ll a,b,c,d,e,f,g;
cin>>a>>b>>c>>d>>e>>f>>g;
ll sum=0;
sum+=qq(a,d)+qq(b,e)+qq(c,f);
if(sum==g)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
}