牛客多校,第五场。(打破队形
若有公式图片无法正常显示,请使用梯子访问!
##
-
题意:
-
思路:
F - DPS
-
题意:
给定n个数,根据公式,构造答案。即为用当前数除以n个数中的最小数即为构造长度。 -
思路:
这里题用库函数ceill() WA到神志不清。。
简单模拟即可,注意精度问题,并且需要向上取整。
ll s[105];
int main()
{
IOS;
ll n;
cin >> n;
ll maxn = -1;
for (ll i = 0; i < n; i++)
{
cin >> s[i];
maxn = max(maxn, s[i]);
}
for (ll i = 0; i < n; i++)
{
ll tt = s[i]*50/maxn;//这里用库函数WA了。。
if (s[i]*50%maxn){
tt++;
}
cout << "+";
for (ll j = 0; j < tt; j++)
cout << "-";
cout << "+" << endl;
cout << "|";
if (s[i] == maxn)
{
for (ll j = 0; j < tt - 1; j++)
cout << " ";
cout << "*";
}
else
{
for (ll j = 0; j < tt; j++)
cout << " ";
}
cout << "|";
cout << s[i] << endl;
cout << "+";
for (ll j = 0; j < tt; j++)
cout << "-";
cout << "+" << endl;
}
return 0;
}
I - Hard Math Problem
-
题意:
在一个无限大的二维图表中放置G、H、E三种建筑,要求H旁边必须相邻G、E,且G、E不相邻。求H在这个无限图表中的占比。 -
思路:
构造每隔两条斜线出间隔放置G、E,中间补H即可保证最大,观察可得占比为2/3.如下所示:
GHHGHHGHHGHHG
HHEHHEHHEHHEH
HGHHGHHGHHGHH
EHHEHHEHHEHHE
int main()
{
IOS;
cout<<0.666667<<endl;
return 0;
}