- 分享
10.2总结
- @ 2024-10-2 18:17:33
一.考试注意事项
1.先在桌面新建文件夹 按自己的考号建文件夹 根据四个题目的文件名,再建四个文件夹 四个文件夹里分别建cpp文件 2.文件读写,建文件就写好,最后提交前再检查一下 3.开long long 4.后面的题目也要尝试拿部分分
二.比赛成绩分析
T1:50分,次快,约10分钟 T2:70分,最快,约8分钟 T3:0分,次慢,约1小时 T4:50分,最慢,约1个半小时 明天考试目标AK
三.四个题目的总结
T1: 错误原因:没开long long 思路:找到公式:(n/2+1)*(n%(n/2+1)) T2: 错误原因:没有取0 思路:循环去取 T3: 错误原因:前缀和写错了 思路:写前缀和取区间武器和 代码:
#include <bits/stdc++.h>
using namespace std;
int n,a[100010],c[100010];
int m,cnt,mp[450][100010],b[450];
int zh(int x,int y)
{
if(x==1) return y;
if(x==2) return y*(y-1)/2;
if(x==3) return y*(y-1)*(y-2)/6;
if(x==4) return y*(y-1)*(y-2)*(y-3)/24;
}
int main()
{
// freopen("wq.in","r",stdin);
// freopen("wq.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]>n) continue;
c[a[i]]++;
if(c[a[i]]==a[i])
{
b[++cnt]=a[i];
}
}
for(int i=1;i<=cnt;i++)
{
for(int j=1;j<=n;j++)
{
if(a[j]==b[i]) mp[i][j]=mp[i][j-1]+1;
else mp[i][j]=mp[i][j-1];
}
}
cin>>m;
for(int i=1;i<=m;i++)
{
int l,r,k,sum=0;
cin>>l>>r>>k;
for(int j=1;j<=cnt;j++)
{
if(mp[j][r]-mp[j][l-1]>=b[j]) sum++;
}
cout<<zh(k,sum)<<endl;
}
return 0;
}
}
T4: 错误原因:只写了部分分代码(实际是想做满分,但只过了50分的) 思路:递归(+记忆化搜索)去找对应括号及代价,分治思想 代码:
#include <bits/stdc++.h>
using namespace std;
int n,color[3];
int R[1010],book[1010][1010][3][3];
string s;
int dfs(int n,int m,int x,int y)
{
if(R[n]==m&&x!=y) return -2e9;
if(n+1==m) return color[x];
if(book[n][m][x][y]>=0) return book[n][m][x][y];
int maxx=0;
if(R[n]==m)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i==x||j==y) continue;
maxx=max(maxx,color[x]+dfs(n+1,m-1,i,j));
}
}
}
else
{
for(int i=0;i<3;i++)
{
if(i==x) continue;
maxx=max(maxx,dfs(n,R[n],x,x)+dfs(R[n]+1,m,i,y));
}
}
book[n][m][x][y]=maxx;
return maxx;
}
int main()
{
// freopen("bracket.in","r",stdin);
// freopen("bracket.out","w",stdout);
stack <int> z;
memset(book,-1,sizeof book);
cin>>n>>color[1]>>color[2]>>s;
for(int i=0;i<s.size();i++)
{
if(s[i]=='(')
{
z.push(i);
}
else
{
int tmp=z.top();
z.pop();
R[tmp]=i;
}
}
int ans=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
ans=max(ans,dfs(0,n-1,i,j));
}
}
cout<<ans;
return 0;
}
}
0 条评论
目前还没有评论...