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

乌鲁木齐网站开发价格温州seo结算

乌鲁木齐网站开发价格,温州seo结算,大兴 网站建设,做笑话网站L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集 所有元素为非负整数,且各行各列的元素和都等于 7 的 33 方阵称为“吉利矩阵”,因为这样的矩阵一共有 666 种。 本题就请你统计一下,把 7 换成任何一个 [2,9] 区间内的正整数 L,把矩…

L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集

所有元素为非负整数,且各行各列的元素和都等于 7 的 3×3 方阵称为“吉利矩阵”,因为这样的矩阵一共有 666 种。
本题就请你统计一下,把 7 换成任何一个 [2,9] 区间内的正整数 L,把矩阵阶数换成任何一个 [2,4] 区间内的正整数 N,满足条件“所有元素为非负整数,且各行各列的元素和都等于 L”的 N×N 方阵一共有多少种?

输入格式:

输入在一行中给出 2 个正整数 L 和 N,意义如题面所述。数字间以空格分隔。

输出格式:

在一行中输出满足题目要求条件的方阵的个数。

输入样例:

7 3

输出样例:

666

思路:

剪枝只对完成的行列进行判断,超时两个点
代码:
 

#include <bits/stdc++.h>
using namespace std;
int a[10][10];
int rows[10], ranks[10];
int L, N, ans;void dfs(int x, int y) 
{if (y > N)// 走完一行 { if (rows[x] != L)return;x++;y = 1;}if (x > N) // 填充完整个矩阵 {for (int i = 1; i <= N; i++) {if (ranks[i] != L)return;if(rows[i] != L)return;}ans++;return;}for (int i = 0; i <= L; i++) {a[x][y] = i;rows[x] += i;ranks[y] += i;dfs(x, y + 1);rows[x] -= i;ranks[y] -= i;a[x][y] = 0;}
}int main(void) 
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> L >> N;dfs(1, 1);cout << ans;return 0;
}

思路:
优化剪枝,对于中间过程,凡是超过L的都要回溯,这里利用两个数组,存行和列的值。超时一个点。

代码:
 

#include <bits/stdc++.h>
using namespace std;
int a[10][10];
int rows[10], ranks[10];
int L, N, ans;void dfs(int x, int y) 
{if(rows[x] > L || ranks[y] > L)return; if (y > N)//走完一行 { if (rows[x] != L)return;x++;y = 1;}if (x > N)// 填充完整个矩阵 { for (int i = 1; i <= N; i++) {if (ranks[i] != L)return;}ans++;return;}for (int i = 0; i <= L; i++) {a[x][y] = i;rows[x] += i;ranks[y] += i;dfs(x, y + 1);rows[x] -= i;ranks[y] -= i;a[x][y] = 0;}
}int main(void) {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> L >> N;dfs(1, 1);cout << ans;return 0;
}

思路:
完全优化,对于行最后一个位置,不用进行枚举,直接求L-(N-1)选的数字和。

代码:

#include <bits/stdc++.h>
using namespace std;int rows[10], ranks[10];
int L, N, ans;void dfs(int x, int y) 
{if (x > N)//全部走完 {ans++;return;}if (y > N) //走完一行 {if (rows[x] != L) return;x++;y = 1; }if (rows[x] > L || ranks[y] > L)//剪枝 return;if (y == N)//每行最后一个格子 {int remain = L - rows[x];if (remain < 0 || ranks[y] + remain > L) return;rows[x] += remain;ranks[y] += remain;dfs(x, y + 1);rows[x] -= remain;ranks[y] -= remain;} else {int max_i = min(L - rows[x], L - ranks[y]);//取最小 for (int i = 0; i <= max_i; i++) {rows[x] += i;ranks[y] += i;dfs(x, y + 1);rows[x] -= i;ranks[y] -= i;}}
}
int main() 
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> L >> N;dfs(1, 1);cout << ans;return 0;
}


http://www.dtcms.com/wzjs/49159.html

相关文章:

  • 最好的活动策划公司安卓aso优化
  • 网站建设需求分析调查表企业网站
  • 谷歌认证合作伙伴网站建设西安网站托管
  • 广告网站模板下载南昌网站seo外包服务
  • 东莞物流网站建设长沙网络推广小公司
  • wordpress官方中文主题下载百度关键词优化送网站
  • 网站服务器租用报价太原网站制作优化seo公司
  • 网站制作排序seo的优化技巧有哪些
  • 十大购物网站排行榜长沙网络推广软件
  • 代理记账网站怎么做网络推广外包一年多少钱
  • 太原北京网站建设公司哪家好刷百度关键词排名优化
  • 网站建设服务版权归谁信息流广告优化师
  • 网站开发运营工作总结百度代发收录
  • 做一个家乡网站有什么可以做全网营销软件
  • 十堰市网站建设做公司网页
  • 北京到广州飞机seo关键词优化推广
  • 学生做网站的软件中国四大软件外包公司
  • 优秀的网页网站设计网络app推广是什么工作
  • 中央 政府网站建设 管理电商热门关键词
  • 织梦收费百度seo外链推广教程
  • 自己怎么做直播网站吗自己做网站
  • 网站设计 网站开发 优化洛阳网站seo
  • 茂名市城市建设档案馆网站关键词查询爱站网
  • 网站建设价格热线友情链接英语
  • 西安东郊网站建设公司免费b站推广网站入口2020
  • 网站建设方案书生鲜港港网app下载最新版
  • 网站建设 三网站长工具官网域名查询
  • 建设通类型的网站网上怎么推广产品
  • 怎么自己做APP网站热门关键词查询
  • 玉环做网站找那家公司新媒体营销推广公司