当前位置: 首页 > news >正文

网站备案名称修改企业建设网站需要注意什么手续

网站备案名称修改,企业建设网站需要注意什么手续,南宁建设信息网站,亚当学院网站视频建设教程登录—专业IT笔试面试备考平台_牛客网 题目大意:有n*n个边长为1的小正方形摆放在边长为n的大正方形中,每次可以选择不超过50个正方形,将其合并为一个更大的正方形,求一种可行的操作使所有小正方形都被合并成一个n*n的大正方形 1…

登录—专业IT笔试面试备考平台_牛客网

题目大意:有n*n个边长为1的小正方形摆放在边长为n的大正方形中,每次可以选择不超过50个正方形,将其合并为一个更大的正方形,求一种可行的操作使所有小正方形都被合并成一个n*n的大正方形

1<=n<=1000

思路:对于一个a*b(a>b)的矩形,我们可以用类似黄金分割的办法将其分割成cnt个b*b的正方形,然后剩下一个(a-cnt)*b*b的矩形,继续分割,一定能最后分割到剩下的矩形边长为1的情况,所以我们将一开始的大正方形分割成左上、右下两个边长分别为a,b的正方形,和剩下两个a*b的矩形,就可以完成题目要求。

现在来求a,b,我们可以从1到n枚举分割出来的矩形边长a,b=n-a,然后用辗转相减法,求出最后剩下边长为1的矩形是,一共构造出了几个正方形,如果<=24,那么两个矩形加起来加上a*a,b*b的正方形就不会超过50个

打表求出每个正方形的边长对应的a,b之后,我们就可以递归求解,每次从大正方形开始,先记录答案,然后分别递归到四个分出来的图形中,横着的和竖着的也就是一开始左下和右上的矩形要分别写一个递归,最后将所有答案逆序输出即可

//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
const int N = 1005;
typedef long long ll;
const ll MOD=998244353;
int siz[N];
vector<pair<int, pair<int, int>>>ans;
bool check(int a, int b)
{//辗转相减法计算a*b的矩形能分割出几个正方形if (!b)return a <= 7;//7*7以下的可以直接合并成一个int cnt = 1;while (b){cnt += a / b;int c = a % b;a = b;b = c;}return cnt <= 25;//将初始的大正方形分割成了两个矩形
}
void dfs2(int x, int y, int leny, int lenx);
void dfs3(int x, int y, int leny, int lenx);
void dfs(int x, int y, int s)
{//当前正方形的坐标,大小if (s == 1)return;//边长为1的不用记录ans.push_back({ x,{y,s} });if (!siz[s])return;//分不了的就和别人一起合并即可int a = s - siz[s], b = siz[s];dfs2(x + a, y, b, a);//左下角的矩形dfs3(x, y + a, a, b);//右上角的矩形dfs(x, y, a);//左上角的正方形dfs(x + a, y + a, b);//右下角的正方形
}
void dfs2(int x, int y, int lenx, int leny)
{//矩形坐标,纵轴长,横轴长if (lenx <= 1)return;int cnt = leny / lenx;//当前矩形能分出几个正方形for (int i = 0; i < cnt; i++){dfs(x, y + i * lenx, lenx);//继续分割切出来的每个小正方形}dfs3(x, y + cnt * lenx, lenx, leny % lenx);//剩下的矩形变成了竖着的
}
void dfs3(int x, int y, int lenx, int leny)
{//横着的矩形if (leny <= 1)return;int cnt = lenx / leny;for (int i = 0; i < cnt; i++){dfs(x + i * leny, y, leny);}dfs2(x + cnt * leny, y, lenx % leny, leny);
}
int main()
{int n;cin >> n;for (int i = 1; i <= n; i++){for (int j = 0; j <= i / 2; j++){//检查n以内所有分割方案是否合法if (check(i - j, j)){siz[i] = j;break;}}}dfs(1, 1, n);cout << ans.size() << endl;reverse(ans.begin(), ans.end());//获取的答案是从大到小,要求是从小到大for (int i = 0; i < ans.size(); i++){cout << ans[i].first << " " << ans[i].second.first << " " << ans[i].second.second << endl;}return 0;
}

http://www.yayakq.cn/news/283358/

相关文章:

  • 律师做网站怎么做电商运营的基本步骤
  • 学校网站建设的意义湖北微网站建设多少钱
  • 永久免费空间网站网址站长之家
  • 自己做外贸网站能接到单吗wordpress 主题 排行榜
  • 网站宣传有文化事业建设费吗网站开发月薪多少钱
  • 简单的购物网站源码wordpress更改默认登录页面
  • 合肥做网站价格网站设计广州量计价格
  • asp门户网站系统wordpress不能发布
  • 中小企业是用什么来做网站的开发的同步修改 wordpress
  • 哪类型网站容易做设计师网络设计平台
  • 网站 域名绑定别人的做网站
  • 网站开发项目流程书wordpress网站备份
  • 免费直播网站网站开发的英文参考文献
  • 苏州专业做网站公司电话网络营销推广方式包括什么
  • 营销型网站推广方案泉州seo搜索优化合作
  • 期货贵金属网站建设网站什么英文字体
  • 俄文网站设计宁波网站制作定制
  • 网站域名域名义乌公司做网站
  • 如果做镜像网站移动端是什么意思
  • 怎么知道网站有没有被收录厦门外贸推广
  • 网站备案 名称 不一致吗可以做高中题目的网站
  • 佛山做网站公司哪家好网站中有哪些标签需要优化
  • php 网站源代码酒类公司网站模板
  • 内容电商网站有哪些seo工作职责
  • 黄骅港信息贴吧北京seo招聘信息
  • 电商平台有哪些模式盐城整站优化
  • 网站建设功能需求方案阿里巴巴网站建设基本内容
  • 重庆有那些制作网站的公司大庆网能做网站吗
  • 淘宝网站设计分析做cpa建什么网站
  • 黑色 网站WordPress免费主题商城