Gym 101630(NEERC 17) D.Designing the Toy
题目大意:给出三视图方向上分别能看到的正方形数a,b,c(1<=a,b,c<=100),在-100<=x,y,z<=100的范围内构造出满足情况的一种正方体的摆放方式
做法很简单,首先找到a,b,c中的最大值,如果最大值满足小于等于另两个值的乘积,则有解,否则无解;明确这一点之后,便可以将所有正方体平铺在最大值所在的平面上进行构造。
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const int mod=1e9+;
const int maxn=1e5+;
const int inf=0x3f3f3f3f;
const double eps=1e-;
const double pi=acos(-1.0);
#define mem(s,v) memset(s,v,sizeof(s))
#define pdd pair<double,double>
#define pii pair<int,int> struct node{
int num,id;
};
node a[]; int cmp(node x,node y){
return x.num<y.num;
} int mp[][]; int main(){
while(~scanf("%d%d%d",&a[].num,&a[].num,&a[].num)){
memset(mp,,sizeof(mp));
for(int i=;i<;++i) a[i].id=i+;
sort(a,a+,cmp);
if(a[].num>a[].num*a[].num){
puts("-1");
continue;
}
int j=;
for(int i=;i<a[].num;++i){
if(j<a[].num){
mp[i][j]=;
j++;
}
else{
mp[i][j-]=;
}
}
int t=a[].num-a[].num;
for(int i=;i<t;++i){
int flag=;
for(int k=;k<a[].num;++k){
for(int j=;j<a[].num;++j){
if(!mp[k][j]){
mp[k][j]=;
flag=;
break;
}
}
if(!flag) break;
}
}
printf("%d\n",a[].num);
int x,y,z;
if(a[].id==){
z=;
if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",i,j,z);
}
}
}
else if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",j,i,z);
}
}
}
}
else if(a[].id==){
y=;
if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",i,y,j);
}
}
}
else if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",j,y,i);
}
}
}
}
else if(a[].id==){
x=;
if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",x,j,i);
}
}
}
else if(a[].id==){
for(int i=;i<a[].num;++i){
for(int j=;j<a[].num;++j){
if(mp[i][j]) printf("%d %d %d\n",x,i,j);
}
}
}
}
}
return ;
}
Gym 101630(NEERC 17) D.Designing the Toy的更多相关文章
- 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) 日常训练
A - Archery Tournament 题目大意:按时间顺序出现靶子和射击一个位置,靶子的圆心为(x, y)半径为r,即圆与x轴相切,靶子不会重叠,靶子被击中后消失, 每次射击找出哪个靶子被射中 ...
- 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17)
2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) A 题意:有 n 个时刻 ...
- Codeforces Gym 101190 NEERC 16 .D Delight for a Cat (上下界的费用流)
ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜 ,因此一个小时内他只能选择睡觉或者打隔膜,当然他也必须选择睡觉或打隔膜,对于每一个小时,他选择睡 ...
- Codeforces Gym 101190 NEERC 16 .L List of Primes(递归)
ls特别喜欢素数,他总是喜欢把素数集合的所有子集写下来,并按照一定的顺序和格式.对于每一个子集,集合内 的元素在写下来时是按照升序排序的,对于若干个集合,则以集合元素之和作为第一关键字,集合的字典序作 ...
- Codeforces Gym 101190 NEERC 16 G. Game on Graph(博弈+拓扑)
Gennady and Georgiy are playing interesting game on a directed graph. The graph has n vertices and m ...
- 2017 NEERC
2017 NEERC Problem A. Archery Tournament 题目描述:在二维平面上,会陆续出现一些圆,以及一些询问,询问点是否在圆内,如果是,则输出那个圆,并把那个圆删掉,否则输 ...
- [C++]Yellow Cards - GYM - 102348A(Practice *) - CodeForces
1 Problem Description Problem The final match of the Berland Football Cup has been held recently. Th ...
- Codeforces Gym 101630J Travelling from Petersburg to Moscow (最短路)
题目链接 http://codeforces.com/gym/101630/attachments 题解 zyb学长的题. 先枚举第\(k\)大的边权,设其边权为\(x\),然后把每条边边权减掉\(x ...
- NEERC-2017
A. Archery Tournament 用线段树套set维护横坐标区间内的所有圆,查询时在$O(\log n)$个set中二分查找即可. 时间复杂度$O(n\log^2n)$. #include& ...
随机推荐
- Codeforces 855B - Marvolo Gaunt's Ring
855B - Marvolo Gaunt's Ring 思路:①枚举a[j],a[i]和a[k]分别用前缀最小值最大值和后缀最小值和后缀最大值确定. ②dp,dp[i][j]表示到第j为止,前i+1个 ...
- php file_get_contents计时读取一个文件/页面 防止读取不到内容
php file_get_contents计时读取一个文件/页面 防止读取不到内容 $url = 'http://www.baidu.com/index.php'; $opts = array( 'h ...
- jquery ajax中 php前台后台文件中编辑都是uft-8,返回数据还是乱码
jquery ajax中 前台后台文件中编辑都是uft-8,返回数据还是乱码 解决如下: 在后台处理文件里面需要再加编辑 header("Content-Type:text/html;cha ...
- Android之侧滑菜单DrawerLayout的使用
在android support.v4 中有一个抽屉视图控件DrawerLayout.使用这个控件,可以生成通过在屏幕上水平滑动打开或者关闭菜单,能给用户一个不错的体验效果. DrawerLayout ...
- Python基础--Python简介和入门
☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...
- 全源最短路径 - floyd算法 - O(N ^ 3)
Floyd-Warshall算法的原理是动态规划. 设Di,j,k为从i到j的只以(1..k)集合中的节点为中间节点的最短路径的长度. 若最短路径经过点k,则Di,j,k = Di,k,k − 1 + ...
- iOS UI-IOS开发中Xcode的一些使用技巧
一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n 新建项目 cmd + n 新建文件 视图 option + cmd + 回车 打开助理编 ...
- dubbo为consumer创建代理
ReferenceConfig.init()方法中获取到了最终的代理对象,先观察一下代理对象的视图. 默认使用javassist生成动态类,可配置proxy为jdk,则使用jdk动态代理: <d ...
- css 初始包含块
continuous media ,paged media 关于continuous media[连续媒体]和paged media[分页媒体] 直白的讲,continuous和paged media ...
- bzoj1088 [SCOI2005]扫雷
题解: 首先枚举第一个有木有雷 然后第二个可以通过第一个推,第三个也是 以此类推 最后判断是否合法 代码: #include<bits/stdc++.h> using namespace ...