目录 按AC先后顺序
Problem A: Adolescent Architecture(排序+思维)
题意
- Problem A: Adolescent Architecture(排序+思维)
- 题意
- 思路分析
- 总结
- Problem F: Flip Flow(模拟)
- 思路分析
- 总结
- (*牛逼)Problem M: Mixtape Management(构造+思维)
- 思路分析
- 总结
- Problem L: Lexicographical Lecturing(水题,暴力+优化)
- 总结
- Problem K: Knightly Knowledge(离散+贪心)
- 思路分析:
- 总结:
- code
输入
给你n个(正方体积木或者圆住积木), 让你一层放一个 下面n行 一个string表示(正方体or圆柱体), 一个int表示该方块的半径or边长
条件限制:
摆出来的积木形状必须是塔的形状 允许轮廓相交
输出
如果不可行输出 impossible 否则 从上到下输出 string 和 int
思路分析因为是塔 所以我们需要对这个数组进行排序 如果遇到了圆柱体 那么我们就分两种情况判断 一种是 圆柱体+ 正方体 一种是 圆柱体+圆柱体
code:
#include
using namespace std;
typedef long long ll;
double q2 = 1.414;
const int N = 110;
int n;
struct node
{
double a;
int op;
} num[N];
bool cmp(node x,node y )
{
if(x.a==y.a)
return x.opn;
double x;
string s;
for(int i=1; i>s;
cin>>x;
if(s == "cube")
{
num[i].a = x;
num[i].op = 1;
}
else
{
num[i].a = x*2;
num[i].op = 0;
}
}
sort(num+1,num+1+n,cmp);
for(int i = n;i>=2;i -- )
{
if(num[i].op == 0 && num[i-1].op == 1)
{
double pd = num[i-1].a *q2 ;
if(pd>num[i].a)
{
cout
关注
打赏