文章目录
- A. Shape Perimeter
- 思路
- 代码
- B. Find the Permutation
- 思路
- 代码
- C. Palindromic Subsequences
- 思路
- 代码
- 小记
A. Shape Perimeter
思路
这个题题目说的很复杂但其实不难,一直一开始正方形的边长是m,每次移动x,y个单位,求移动过程中图形的周长,其实这个不规则图形的周长可以看成一个矩形,因为题目说第一次移动不算,所以我们从第二次开始移动累加x,y最后加m乘二就是周长
代码
igned main()
{
IOS
int T=1;
cin>>T;
while(T--)
{
int n,m,x,y,a,b;
cin>>n>>m;
a=m,b=m;
for(int i=1;i<=n;i++)
{cin>>x>>y;
if(i!=1)
{
a+=x;
b+=y;
}
}
cout<<2*a+2*b<<endl;
}
return 0;
}
B. Find the Permutation
思路
这个题我感觉就是找规律,遍历每一行i找1到i-1中1的个数x找i+1到n中0的个数y最后x+y+1的位置就是i
代码
signed main()
{
IOS
int T=1;
cin>>T;
while(T--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>s[i][j];
for(int i=1;i<=n;i++)
{
int x=0,y=0;
for(int j=1;j<i;j++)
{
if(s[i][j]=='1')
x++;
}
for(int j=i+1;j<=n;j++)
{
if(s[i][j]=='0')
y++;
}
st[x+y+1]=i;
}
for(int i=1;i<=n;i++)
cout<<st[i]<<" ";
cout<<endl;
}
return 0;
}
C. Palindromic Subsequences
思路
这个题我感觉也是思维题,题目说要构造长度为n的数组中最长回文子序列的个数大于n,我们只需要这样构造就行
1,1,3,4…n-2,n-1,1
代码
signed main()
{
IOS
int T=1;
cin>>T;
while(T--)
{
int n;
cin>>n;
cout<<1<<" "<<1<<" ";
for(int i=3;i<n;i++)
cout<<i<<" ";
cout<<1<<endl;
}
return 0;
}
小记
这次比赛感觉打得不错,但对于第三题想的时间太长了,浪费了我的一些时间,最后过了三题,也是又加了分cf已经到了1372,明天还有一场cf继续加油,争取上1400