A-春天到了,该练习dp了
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
示例1
输入
1 5 1 2 3 4 5 3 1 3 2 1 5 5 3 3 1
输出
19 70 4
备注:
请使用较快的输入输出方式。 C 可以使用 scanf/printf 进行输入输出。 C++ 可以使用 ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) 关闭同步流后,使用 cin/cout 进行输入输出,并使用 \n 替代 endl。
本题主要就是理解题意,根据题意写代码
AC代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e6;
int a[N],b[N],c[N];
signed main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=b[i-1]+a[i];
}
for(int i=1;i<=n;i++)
c[i]=c[i-1]+i*i;
int q;
cin>>q;
while(q--)
{
int l,r,k;
cin>>l>>r>>k;
int m=r-l+1;
cout<<c[m]+b[r]-b[l-1]-c[m-k]<<'\n';
}
}
return 0;
}
G-好像会数学啊
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
兄弟会背叛你,女人会离开你,金钱会诱惑你,生活会刁难你,只有数学不会,不会就是不会,怎么学都不会。
求第一个大于 10^30+50 的质数。
输入描述:
无。
输出描述:
一行一个正整数表示第一个大于 10^30+50 的质数。
可以直接从10^30+50后面加找到最小的质数
#include<bits/stdc++.h>
using namespace std;
int main()
{
printf("1000000000000000000000000000057");
return 0;
}
I-神说要有光
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
示例1
输入
5 9 5 1 1 5 b 5 2 2 5 c 5 3 3 6 d 5 4 4 0 e 5 5
输出
aaaaa aaaaa aaaac adaac dbbbe
本题没有任何算法,只是考了一个简单的思维,读题一步步写就可以了。
AC代码
#include<bits/stdc++.h>
using namespace std;
char s[1010][1010];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
s[i][j]='a';
}
}
int q;
cin>>q;
while(q--)
{
int p,q;
char r;
cin>>p;
if(p==5)
{
cin>>q;
for(int i=1;i<=n;i++)
{
cout<<s[q][i];
}
cout<<endl;
}
else
{
if(p==1||p==2)
{
cin>>q>>r;
for(int i=1;i<=n;i++)
{
if(q==0)
break;
if(p==1)
s[q][i]=r;
else
s[i][q]=r;
}
}
else
{
cin>>q>>r;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(p==3&&i+j==q)
s[i][j]=r;
if(p==4&&i-j==q)
s[i][j]=r;
}
}
}
}
}
return 0;
}
L-今天是个上分的好日子
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
示例1
输入
10
输出
-9
示例2
输入
11101
输出
3
本题需要注意的点就是连胜,当连胜的时候第二把在原来+3的基础上会再+1,第三把会在原来+3的基础上+2,依次类推。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b=0,c=0,d=0;
string s;
cin>>s;
a=s.length();
for(int i=0;i<a;i++)
{
if(s[i]=='1')
{
b=b+3;
c++;
if(c>=2&&c<=6)
{
b+=c-1;
}
else if(c>6)
{
b=b+5;
}
}
else
{
c=0;
b=b-12;
}
}
cout<<b<<endl;
return 0;
}