2018 ACM-ICPC 亚洲区域赛北京现场赛 I题 Palindromes

时间:2022-03-30 21:31:11

做法:打表找规律

大数是过不了这个题的(但可以用来打表)

先找k的前缀,前缀对应边缘数字是哪个 如果第0位是2-9 对应奇数长度的1-8 第0位为1时,第1位为0时对应奇数长度的9,为1-9时对应偶数长度的1-9,剩下的根据奇偶判断先从头到尾再从尾到头跑一编即可

如100会得到909

100234会得到902343209

110会得到1001

11234会得到12344321

#include <iostream>
#include <string> using namespace std; int main()
{
int t;
cin >> t;
while (t--)
{
string k;
cin >> k;
if (k.size() == || k == "")
{
if(k.size() == )
cout << (char)(k[] - ) << endl;
else
{
cout << "" << endl;
}
continue;
}
bool flag = ;
if (k[] == '' && k[] > '')
{
flag = ;
}
if (!flag)
{
cout << k[];
for(int i = ; i < k.size(); i++)
{
cout << k[i];
}
for (int i = k.size() - ; i > ; i--)
{
cout << k[i];
}
cout << k[] << endl;
}
else
{
int x = ;
if (k[] == '')
cout << "";
else
{
cout << k[] - << endl;
x = ;
}
for (int i = ; i < k.size(); i++)
{
cout << k[i];
}
for (int i = k.size() - ; i >= x; i--)
{
cout << k[i];
} if (k[] == '')
cout << "" << endl;
else
{
cout << k[] - << endl;
}
}
}
return ;
}

顺便写下北京站的心得吧

三题拿铜滚粗,给学校丢人了

本身很菜,可能是最后一次区域赛了

北大的氛围好舒服啊,我好想去(逃)