7106

Bear_King

ZhgDgE

ヅ天使ぺ嫙嵂
RyanMoriarty

X-7D1C11010

wssdl

2001f
XUGUOHAO

DarksideCoder

17小时前
#include<iostream>
using namespace std;
const int N =1e4+10;
int main()
{
int n;
cin>>n;
int res=n;
while(n>=3)
{
res +=n/3;
n = n%3+n/3;
}
cout<<res<<endl;
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int  N= 1010;
int a[N][N];
int s[N][N];
int main()
{
int n,m ,q;
cin>>n>>m>>q;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+a[i][j];
while(q--)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
cout<<s[x2][y2]-s[x2][y1-1]-s[x1-1][y2]+s[x1-1][y1-1]<<endl;
}
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N =1e5+10;
int s[N], a[N];
int main()
{
int n ,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s[i] =s[i-1]+a[i];
}
while(m--)
{
int l, r;
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;
}
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
double x;
cin>>x;
double l=-1e4, r=1e4;
while(r-l>1e-8)
{
double mid=(l+r)/2;
if(mid*mid*mid>=x)  r=mid;
else                l=mid;
}
printf("%.6lf",l);
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N =1e5+10;
int a[N];
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)    cin>>a[i];
while(m--)
{
int x;
cin>>x;
int l=0, r=n-1;
while(l<r)
{
int mid=(l+r)/2;
if(a[mid]>=x)   r=mid;
else            l=mid+1;
}
if(a[l]!=x) cout<<"-1 -1"<<endl;
else
{
cout<<l<<" ";
int l=0, r=n-1;
while(l<r)
{
int mid=(l+r+1)/2;
if(a[mid]<=x)   l=mid;
else            r=mid-1;
}
cout<<l<<endl;
}
}
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N =1010;
int f[N];
int a[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
f[i]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(a[i]>a[j])
f[i]=max(f[i],f[j]+1);
}
}
sort(f+1,f+1+n);
cout<<f[n]<<endl;
return 0;
}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N =110;
int g[N][N];
int f[N][N];
int n,m;
int main()
{
int T ;
cin>>T;
while(T--)
{
memset(f,0,sizeof f);
memset(g,-0x3f3f,sizeof g);
int n, m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>g[i][j];
f[1][1]=g[1][1];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(i>1) f[i][j]=max(f[i][j],f[i-1][j]+g[i][j]);
if(j>1) f[i][j]=max(f[i][j],f[i][j-1]+g[i][j]);
}
cout<<f[n][m]<<endl;
}
return 0;

}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N =1010;
int w[N], v[N];
int f[N][N];
int n,m;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>v[i]>>w[i];
for(int i=1;i<=n;i++)
for(int j=0;j<=m;j++)
{
f[i][j]=f[i-1][j];
if(v[i]<=j)
f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]);
}
cout<<f[n][m]<<endl;
return 0;
}


### 题目描述

Res是我们的答案 我们为什么将cnt[0]设置为1 这是因为当我们首次遇到s[i]%k的余数为零 此时的res就要加一 但是我们初始的时候cnt[0]为0 加不上 所以先将cnt[0]设置为1

#### C++ 代码

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10;
typedef long long ll;
ll a[N],s[N],cnt[N];
int main()
{
ll n, k;
cin>>n>>k;
for(ll i=1;i<=n;i++)
{
cin>>a[i];
s[i] =s[i-1]+a[i];
}
cnt[0]=1;
ll res=0;
for(ll i=1;i<=n;i++)
{
res += cnt[s[i]%k];
cnt[s[i]%k]++;
}
cout<<res<<endl;
return 0;

}


#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10;
typedef long long ll;
ll a[N],s[N],cnt[N];
int main()
{
ll n, k;
cin>>n>>k;
for(ll i=1;i<=n;i++)
{
cin>>a[i];
s[i] =s[i-1]+a[i];
}
cnt[0]=1;
ll res=0;
for(ll i=1;i<=n;i++)
{
res += cnt[s[i]%k];
cnt[s[i]%k]++;
}
cout<<res<<endl;
return 0;

}