复习2。
一.╥﹏╥...倒计时72天╥﹏╥...-CSDN博客
1.*
#include
using namespace std;
#define int long long
const int N=3e3+5;
const int inf=0x3f3f3f3f;
int a[N][N],b[N][N];
void solve()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
cin>>a[i][j];
}
}
b[1][1]=a[1][1];
for(int i=2;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(j==1)b[i][j]=b[i-1][j]+a[i][j];
else if(j==i)b[i][j]=b[i-1][j-1]+a[i][j];
else b[i][j]=max(b[i-1][j],b[i-1][j-1])+a[i][j];
}
}
if(n&1)cout<
2.
#include
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
int a[N],b[N];
void solve()
{
int n;
cin>>n;
for(int i=0;i>a[i];
b[i]=a[i];
}
sort(a,a+n);
int p,q,r;
if(n&1)
{
p=a[n/2-1],q=a[n/2],r=a[n/2+1];//2,5,8
}
else
{
p=a[n/2-1],q=a[n/2];//2,5
}
for(int i=0;i=r)
{
printf("%.1f\n",(p+q)/2.0);
}
else printf("%.1f\n",(p+r)/2.0);
}
else
{
if(b[i]<=p)
{
printf("%.1f\n",1.0*q);
}
else
{
printf("%.1f\n",1.0*p);
}
}
}
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
solve();
return 0;
}
3.*
#include
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
const int mod=1000000007;
int a[N],b[N];
void solve()
{
int n;
cin>>n;
int ma,mb,sum=0;
cin>>ma;
for(int i=ma;i>0;i--)
{
cin>>a[i];
}
cin>>mb;
for(int i=mb;i>0;i--)
{
cin>>b[i];
}
for(int i=ma;i>1;i--)
{
int p=a[i-1]+1;
int q=b[i-1]+1;
int r=2;
sum=(sum+a[i]-b[i])*(max({p,q,r}))%mod;
}
sum+=a[1]-b[1];
cout<
4.
#include
using namespace std;
#define int long long
const int N=1e6+5;
const int inf=0x3f3f3f3f;
int a[N],b[N],c[N];
void solve()
{
int n,k,sum=0;
cin>>n>>k;
for(int i=0;i>a[i];
sum+=a[i];
}
for(int i=0;i>b[i];
c[i]=b[i]-a[i];
}
sort(c,c+n);
for(int i=n-1;i>=k;i--)
{
sum+=c[i];
}
cout<
5.
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
string s[30];
bool cmp(string s1,string s2)
{
return s1+s2>s2+s1;
}
void solve()
{
int n;
cin>>n;
for(int i=0;i>s[i];
}
sort(s,s+n,cmp);
for(int i=0;i
6.
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
stackst;
void solve()
{
string s;
bool flag=1;
cin>>s;
for(int i=0;i
7.*
#include
using namespace std;
#define int long long
const int N=3e6+5;
const int inf=0x3f3f3f3f;
int a[N],b[N]={};
stackst;
void solve()
{
int n,cn=0,max1=-inf;
cin>>n;
for(int i=0;i>a[i];
}
for(int i=n-1;i>=0;i--)
{
max1=max(max1,a[i]);
b[i]=max1;
}
for(int i=0;ib[i+1])
{
cn++;
if(cn
8.*
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
stackst;
void solve()
{
string s;
while(cin>>s)
{
for(int i=0;i=2)
{
int p=st.top();
st.pop();
int q=st.top();
st.pop();
if(p=='o'&&q=='o')
{
st.push('O');
}
else if(p!=q)
{
st.push(q);
st.push(p);
break;//不break会无限循环下去
}
}
}
string a;
while(!st.empty())
{
a+=st.top();
st.pop();
}
reverse(a.begin(),a.end());
cout<
二.倒计时71天-CSDN博客
1.*
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
void solve()
{
int x,y,l,r;
cin>>x>>y>>l>>r;
int a=gcd(x,y);
x/=a,y/=a;
if(x>y)swap(x,y);
int p=l/x;
if(l%x)p+=1;
int q=r/y;
cout<
2.*
#include
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
vectorve[N];
int dp[N][2];//0:不染,1:染
void dfs(int x,int fa)
{
dp[x][0]=1,dp[x][1]=1;
for(auto i:ve[x])
{
if(i==fa)continue;
dfs(i,x);
dp[x][0]=dp[x][0]*dp[i][1]%mod;
dp[x][1]=dp[x][1]*(dp[i][0]+dp[i][1])%mod;
}
}
void solve()
{
int n;
cin>>n;
for(int i=1;i>u>>v;
ve[u].push_back(v);
ve[v].push_back(u);
}
dfs(1,0);
cout<<(dp[1][0]+dp[1][1])%mod;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
solve();
return 0;
}
倒计时70天-CSDN博客
1.
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
#define pb push_back
mapmp;
vectorve;
bool cmp(int a,int b)
{
return mp[a]>mp[b];
}
void solve()
{
int n,m,k,a;
cin>>n>>m>>k;
for(int i=0;i>a;
mp[a]++;
}
for(int i=1;i<=m;i++)
{
ve.pb(i);
}
sort(ve.begin(),ve.end(),cmp);
//mp[ve[0]] n-k
cout<
2.*
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
int n,m,k,a;
mapmp;
bool check(int mid,int i)
{
int cn=0;
for(auto x:mp)
{
cn+=max(0ll,x.second-mid);
}
if(mp[i]>=mid)cn-=(mp[i]-mid);
if(cn>k)return false;
else return true;//k个名额够
}
void solve()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
{
cin>>a;
mp[a]++;
}
for(int i=1;i<=m;i++)
{
if(n-k-mp[i]<0)cout<<-1<<' ';
else
{
int l=0,r=n;
while(l>1;
if(check(mid,i))r=mid;让mid小一点,cn大一点,直到临界
else l=mid+1;
}
cout<
3.
#include
using namespace std;
#define int long long
const int N=1e5+5;
const int inf=0x3f3f3f3f;
int a[N],b[N],c[N];
void solve()
{
int n,m,u,cn1=0,cn2=0;
cin>>n>>m>>u;
for(int i=0;i>a[i];
for(int i=0;i>b[i];
for(int i=0;im||cn2>u)break;
else
{
c[i]++;
}
}
}
sort(c,c+n);
cout<
4.*
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
int a[110],b[110];
bool cmp(int p,int q)
{
return p>q;
}
void solve()
{
int n,m,x,cn=0,sum=0;
cin>>n>>m>>x;
for(int i=0;i>a[i];
for(int i=0;i>b[i];
sort(a,a+n,cmp);
sort(b,b+m,cmp);
for(int i=0,j=0;i=x)
{
cn++;
break;
}
else
{
sum-=b[j];
sum+=a[i]*b[j];
cn+=2;
if(sum>=x)
{
break;
}
}
}
if(sum
5.*
#include
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
void solve()
{
int t;
cin>>t;
while(t--)
{
int n,k,a[N],b[N]={-inf};
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
int max1=-inf;
bool flag=1;
for(int i=1;i<=n;i++)
{
b[i]=a[i]-k;//b>=a-k
b[i]=max(b[i],b[i-1]);//b[i]>=b[i-1],同大取大
if(b[i]>a[i]+k)
{
cout<<"No"<
倒计时69天-CSDN博客
3.*
#include
using namespace std;
#define int long long
const int N=3e4+5;
const int inf=0x3f3f3f3f;
int dp[10];
void solve()
{
int n,mx=-inf;
string s;
cin>>n;
for(int i=0;i>s;
int a=s[0]-'0',b=s.back()-'0';
dp[b]=max(dp[b],dp[a]+1);
mx=max(mx,dp[b]);
}
cout<
倒计时69天-CSDN博客
1.
#include
using namespace std;
#define int long long
const int N=2e5+5;
const int inf=0x3f3f3f3f;
int v[110],w[110],a[N],b[N],c[N];
void solve()
{
int n,m,q,cn=0;
cin>>n>>m>>q;
for(int i=1;i<=q;i++)
{
cin>>a[i];
}
for(int i=1;i<=q;i++)
{
b[i]=a[i]-a[i-1]-1;
}
b[q+1]=n-a[q];
for(int i=1;i<=m;i++)
{
int k,s;
cin>>k>>s;
v[i]=pow(2,k);
w[i]=s;
}
for(int l=1;l<=q+1;l++)
{
int V=b[l];
for(int i=1;i<=m;i++)
{
for(int j=v[i];j<=V;j++)//审题仔细,“同一个健身计划可以多次完成,也能多刺获得健身增益”
{
c[j]=max(c[j],c[j-v[i]]+w[i]);
}
}
cn+=c[V];
}
cout<