UVALive 7511 Multiplication Table (數學模擬題)
題目大意:給一個數字矩陣,'?'表示不確定的數字,問這個子矩陣可不可能存在於乘法表裡
題目分析:全是問號顯然可以,只有一個數字列舉約數和數字的座標比較,大於等於兩個數字,還是列舉約數判斷與剩下的數字是否匹配
#include <cstdio>
#include <cstring>
#include <cmath>
int const MAX = 1005;
double const EPS = 1e-10;
struct NUM
{
int x, y, val;
}num[MAX * MAX];
char s[MAX][9];
int main()
{
int T, n, m;
scanf("%d", &T);
for(int ca = 1; ca <= T; ca ++)
{
printf("Case #%d: ", ca);
int cnt = 0;
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
scanf("%s", s[j]);
if(s[j][0] != '?')
{
num[cnt].x = i + 1;
num[cnt].y = j + 1;
sscanf(s[j], "%d", &num[cnt ++].val);
}
}
}
if(cnt == 0)
{
printf("Yes\n");
continue;
}
if(cnt == 1)
{
bool f = false;
int x_, y_;
for(int i = 1; !f && i <= (int)sqrt(num[0].val * 1.0); i++)
{
if(num[0].val % i == 0)
{
x_ = i;
y_ = num[0].val / i;
if((num[0].x <= x_ && num[0].y <= y_) || (num[0].y <= x_ && num[0].x <= y_))
f = true;
}
}
printf("%s\n", f ? "Yes" : "No");
continue;
}
int x1, y1;
bool f = false;
for(int i = 1; !f && i <= (int)sqrt(num[0].val * 1.0); i++)
{
if(num[0].val % i == 0)
{
x1 = i;
y1 = num[0].val / i;
if(x1 >= num[0].x && y1 >= num[0].y)
{
if((x1 + num[1].x - num[0].x) * (y1 + num[1].y - num[0].y) == num[1].val)
{
bool f2 = true;
for(int j = 2; f2 && j < cnt; j++)
if((x1 + num[j].x - num[0].x) * (y1 + num[j].y - num[0].y) != num[j].val)
f2 = false;
if(f2)
f = true;
}
}
if(y1 >= num[0].x && x1 >= num[0].y)
{
if((y1 + num[1].x - num[0].x) * (x1 + num[1].y - num[0].y) == num[1].val)
{
bool f2 = true;
for(int j = 2; f2 && j < cnt; j++)
if((y1 + num[j].x - num[0].x) * (x1 + num[j].y - num[0].y) != num[j].val)
f2 = false;
if(f2)
f = true;
}
}
}
}
printf("%s\n", f ? "Yes" : "No");
}
}
相關文章
- [6 kyu] Multiplication table
- HDU 4951 Multiplication table(找規律)
- Codeforces 448D Multiplication Table
- noip模擬32[好數學啊]
- 模擬題
- codeforces448D Multiplication Table(二分答案)
- UVALive 6283 Great Deceiver 思考題
- 光學數字孿生系統模擬
- 模擬面試題面試題
- Oracle模擬MySQL的show index from table命令OracleMySqlIndex
- 模擬賽雜題
- 「暑期訓練」「Brute Force」 Multiplication Table (CFR256D2D)
- 解析·玄學 模擬退火
- PAT-B 1024 科學計數法【模擬+字串】字串
- 模擬退火 學習筆記筆記
- 模擬退火學習筆記筆記
- Proteus模擬學習筆記筆記
- 物理數值模擬模擬軟體:Comsol Multiphysics for Mac 中文版Mac
- 雙模數問題 題解
- 例題6-3 Matrix Chain Multiplication ,Uva 442AI
- C語言模擬試題1C語言
- C語言模擬試題2C語言
- C語言模擬試題3C語言
- C語言模擬試題4C語言
- C語言模擬試題5C語言
- C語言模擬試題6C語言
- 個人收藏oracle模擬題part 1Oracle
- 【題解】「CSP模擬賽」雨天 rainAI
- 10.31 模擬賽題解
- 2020秋資料結構實驗第一題:兔子數列模擬(斐波那契數列模擬)C++實現資料結構C++
- 數值得整數次方--模擬pow函式的功能函式
- 模擬
- noip模擬9[斐波那契·數顏色·分組](洛谷模擬測試)
- JavaScript專題之模擬實現newJavaScript
- JavaScript專題之模擬實現bindJavaScript
- csp模擬27-金箱子(題解)
- Android studio虛擬模擬器安裝問題Android
- Dymola — 多學科系統模擬平臺