1 条题解
-
0
自动搬运
来自洛谷,原作者为

Charlie_ljk
是一生一期,是一期一会搬运于
2025-08-24 23:00:19,当前版本为作者最后更新于2024-07-06 19:59:58,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路
考虑每一行(列),最多存在两个 ,其余均为 ,对于两个 ,不可让其相乘,故此每一行(列)中若有两个 ,则必须有一个加号。
根据此考虑打表即可,从贪心的思路,满足上述条件的同时使加号尽可能的少,因为 。
打表
为防止影响阅读,所打出的表放在剪切板内。
- 打表。
代码如下
#include <bits/stdc++.h> using namespace std; signed main() { string b[100][100]; b[3][3]="1111*1111"; b[3][4]="11111*111111"; b[3][5]="111111*1*111111"; b[3][6]="1111111*1*11111111"; b[3][7]="11111111*1*1*11111111"; b[3][8]="111111111*1*1*1111111111"; b[3][9]="1111111111*1*1*1*1111111111"; b[4][3]="1111111*1111", b[4][4]="11111*1111*11111"; b[4][5]="111111*1*111+1111111"; b[4][6]="11111111*1*11*1*11111111"; b[4][7]="11111111*1*1*111+1*111111111"; b[4][8]="111111111*1*1*1111*1*1*111111111"; b[4][9]="1111111111*1*1*1*111*1*1+11111111111"; b[5][3]="1111*11111*1111", b[5][4]="11111*1111+11*111111", b[5][5]="111111*1*111+111*1*111111"; b[5][6]="1111111*1*1111+1+11*1*11111111"; b[5][7]="11111111*1*1*111+1+111*1*1*11111111"; b[5][8]="111111111*1*1*1111+1+1+11*1*1*1111111111"; b[5][9]="1111111111*1*1*1*111+1+1+111*1*1*1*1111111111"; b[6][3]="1111111*11111*1111", b[6][4]="11111*1111*11*1111*11111", b[6][5]="1111111+111*1*111+111*1*111111", b[6][6]="1111111*1*1111*1*11*1*1111*1*1111111"; b[6][7]="11111111*1*1*111+1*111*1*1*111+1*111111111"; b[6][8]="111111111*1*1*1111*1*1*11*1*1*1111*1*1*111111111"; b[6][9]="1111111111*1*1*1*111*1*1+111*1*1*1*111+1*1*11111111111"; b[7][3]="1111*11111*11111*1111", b[7][4]="11111*1111*11*1111+11*111111", b[7][5]="111111*1*111+111*1*111+111*1*111111", b[7][6]="1111111*1*1111*1*11*1*1111+1+11*1*11111111", b[7][7]="11111111*1*1*111+1*111*1*1*111*1+111*1*1*11111111"; b[7][8]="111111111*1*1*1111+1*1+11*1*1*1111*1+1*11*1*1*1111111111"; b[7][9]="1111111111*1*1*1*111*1*1+111*1*1*1*111+1+1*111*1*1*1*1111111111"; b[8][3]="1111111*11111*11111*1111"; b[8][4]="111111*11*1111*11*1111*11*111111", b[8][5]="1111111+111*1*111+111*1*111+111*1*111111", b[8][6]="11111111*1*11*1*1111*1*11*1*1111*1*11*1*11111111", b[8][7]="111111111+1*111*1*1*111*1+111*1*1*111+1*111*1*1*11111111", b[8][8]="111111111*1*1*1111*1*1*11*1*1*1111*1*1*11*1*1*1111*1*1*111111111"; b[8][9]="1111111111*1*1*1*111+1*1*111*1*1*1*111+1*1*111*1*1*1*111*1*1+11111111111"; b[9][3]="1111*11111*11111*11111*1111"; b[9][4]="11111*1111+11*1111*11*1111*11*111111", b[9][5]="111111*1*111+111*1*111+111*1*111+111*1*111111", b[9][6]="1111111*1*1111+1*11*1*1111*1*11*1*1111*1+11*1*11111111", b[9][7]="11111111*1*1*111+1*111*1*1*111*1+111*1*1*111*1+111*1*1*11111111", b[9][8]="111111111*1*1*1111*1*1+11*1*1*1111*1*1*11*1*1*1111+1+1*11*1*1*1111111111", b[9][9]="1111111111*1*1*1*111+1*1*111*1*1*1*111*1+1*111*1*1*1*111*1*1+111*1*1*1*1111111111"; cin.tie(0) -> sync_with_stdio(false); int n, m; cin >> n >> m; string s = b[n][m]; s = ' ' + s; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) cout << s[(i - 1) * m + j]; cout << '\n'; } return 0; }
- 1
信息
- ID
- 10431
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者