首页 > 代码库 > 【UVA】11040 - Add bricks in the wall(找规律)
【UVA】11040 - Add bricks in the wall(找规律)
一道找规律的题,可以看出,大的三角形可以划分成好多个三层的三角形:
【x】
【a】【x-a】
【y】 【 】【z】
这里面xyz都已知,所以可以求出a = (x + y - z ) /2
14043615 | 11040 | Add bricks in the wall | Accepted | C++ | 0.019 | 2014-08-15 06:02:50 |
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<queue> #include<map> #include<set> #include<list> #include<cmath> #include<string> #include<sstream> #include<ctime> using namespace std; #define _PI acos(-1.0) #define INF (1 << 10) #define esp 1e-9 typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> pill; /*=========================================== ===========================================*/ #define MAXD 20 + 10 int Grap[MAXD][MAXD]; int main(){ int T; scanf("%d",&T); while(T--){ for(int i = 1 ; i <= 9 ; i+=2){ for(int j = 1 ; j <= i ; j += 2) scanf("%d",&Grap[i][j]); } for(int i = 1 ; i <= 9 ; i++){ for(int j = 1 ; j <= i ; j++){ if(i & 1){ /*如果是奇数行*/ if(j % 2 == 0){ Grap[i][j] = Grap[i - 1][j - 1] - Grap[i][j - 1]; } } else{/*如果是偶数行*/ if(j & 1){ Grap[i][j] = (Grap[i - 1][j] + Grap[i + 1][j] - Grap[i + 1][j + 2] )/ 2; } else{ Grap[i][j] = Grap[i - 1][j - 1] - Grap[i][j - 1]; } } } } for(int i = 1 ; i <= 9 ; i++){ for(int j = 1 ; j <= i ; j++){ printf("%d",Grap[i][j]); if(j < i) printf(" "); } printf("\n"); } } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。