首页 > 其他分享 >[ARC175E] Three View Drawing

[ARC175E] Three View Drawing

时间:2024-08-27 15:25:45浏览次数:10  
标签:Three 对角线 ARC175E 俯视图 Drawing View

My Blogs

[ARC175E] Three View Drawing

哎,构造。

首先考虑 \(m=n^2\) 怎么做:显然是最上面一层填满第一条主对角线,第二层填满第二条主对角线...(主对角线指可以循环的对角线)。

把 \(n\) 变成满足 \(n^2\geq m\) 的最小的 \(n\)。然后考虑删去 \(n^2-m\) 个。可以发现(谁能发现啊啊啊)在矩形的右下角删掉一个 L 型即可。如果 \(n^2-m\) 是偶数则右下角的 \((n,n,n)\) 保留即可。

image.png

设 \(x\) 表示 \(L\) 的边长 \(-1\)(图中为 \(4\))。上图是正方体的俯视图,把正方体从上到下分成 \(1,2,3\dots n\) 层,某个位置填了 \(x\) 代表这个的格子存在于第 \(x\) 层。

首先对于暖色调的填法,可以发现这样对于前 \(n-1-x\) 层,从正面和侧面看都是填满的,和俯视图是相同的。

对于紫色,这个位置填的是 \(n\),正好对应了在第 \(n\) 层只有最左边三个有值,符合俯视图。

对于冷色调的其他颜色,都在一个 \((n-1)\times(n-1)\) 的正方形里面填的,所以对于第 \((n-x)\sim(n-1)\) 层,每层从正面和右面看都是恰好 \(n-1\) 个格子,也符合俯视图。

int n,m,a[510][510];
vector<tup> ans;
inline void mian()
{
	read(n,m),memset(a,-1,sizeof(a));
	while((n-1)*(n-1)>=m)--n;
	m=n*n-m;
	if(!(m&1))ans.eb(tup(n-1,n-1,n-1));else --m;
	m>>=1,assert(m<n);
	for(int i=0;i+m+1<n;++i)for(int j=0;j<n;++j)a[j][(i-1-j+n)%n]=i;
	for(int i=0;i<n-1-m;++i)a[i][n-2-m-i]=n-1;
	for(int i=n-m-1;i<n-1;++i)for(int j=0;j<n-1;++j)a[j][(i-j+(n-1))%(n-1)]=i;
	for(int i=0;i<n;++i)for(int j=0;j<n;++j)if(a[i][j]!=-1)ans.eb(tup(i,j,a[i][j]));
	for(auto [x,y,z]:ans)write(x,' ',y,' ',z,'\n');
}

标签:Three,对角线,ARC175E,俯视图,Drawing,View
From: https://www.cnblogs.com/WrongAnswer90/p/18382795

相关文章

  • threeJs 修改TransformControls的显示位置
    有的时候模型的原点不是自身中心而是在场景的[0,0,0]位置这个时候想要让TransformControls的位置显示在模型的中心目前找的的处理方式是修改源码找到updateMatrixWorld方法updateMatrixWorld(){...for(leti=0;i<handles.length;i++){ ... if(this......
  • ThreeJS Shader的效果样例雷达图和大气层(二)
    一、雷达图   实现原理:图中是一个旋转的渐变扇形,可以通过先实现一个扇形、然后再实现一个渐变扇形,最后再将扇形旋转来达到最终效果1. 实现一个夹角为O的扇形,已X轴正方向为单位向量M,UV点到(0,0)形成向量N,通过M和N的点乘就可以得到一个夹角,然后判断角度小于O就可以了2. 实......
  • 看了几十篇论文,实现了个专业算法,用threejs做了个三维人员定位系统示例(已开源)
    需求“threejs中能不能给定几组三维坐标(或者CAD绘制的三维多段线),给一个断面形状,直接生成三维管道?”例如原始CAD图如下:要求用threejs获取线的三维坐标数据自动生成的三维管道效果图如下: 分析如果直接对每条线用threejs中的THREE.TubeGeometry去绘制的话,会出现交岔口出......
  • 【Three.JS零基础入门教程】第七篇:材质详解
      前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助【Three.JS零基础入门教程】第四篇:基础变换【Three.JS零基础入门教程】第五篇:项目规划【Three.JS零基础入门教程】第六篇:物......
  • 【Three.JS零基础入门教程】第八篇:材质详解
     前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助【Three.JS零基础入门教程】第四篇:基础变换【Three.JS零基础入门教程】第五篇:项目规划【Three.JS零基础入门教程】第六篇:物体......
  • 【Three.JS零基础入门教程】第六篇:物体详解
     前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助【Three.JS零基础入门教程】第四篇:基础变换【Three.JS零基础入门教程】第五篇:项目规划下面将进一步详解介绍Threejs中的常用......
  • 【Three.JS零基础入门教程】第五篇:项目规划
     前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助【Three.JS零基础入门教程】第四篇:基础变换一个three.js的项目由这么几个部分组成场景物体灯光相机渲染器工具这里我们可以......
  • 【Three.JS零基础入门教程】第四篇:基础变换
    前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助接下来,我们通过三种基础的变换来加深对3D坐标系中坐标和单位的理解,同时也是动画的基础.分别是:移动缩放旋转效果1......
  • SMHC Three SD/MMC host controller (SMHC) interfaces
    SMHCThreeSD/MMChostcontroller(SMHC)interfaces1TheSMHC0controlsthedevicesthatcomplywiththeprotocolSecureDigitalMemory(SDmem-version3.0)2TheSMHC1controlsthedevicethatcomplieswiththeprotocolSecureDigitalI/O(SDIO-version......
  • 最新版本原生three cesium案例聚集地
    开发实时预览:http://z2586300277.github.io/three-cesium-examples/index.html开源地址github:https://github.com/z2586300277/three-cesium-examples纯原生threecesium案例由于前端得发展,three.js和cesium.js越来越被越来越多得前端接触到,由于其学习路线比较复......