[luoguP2129] L国的战斗续之多路出击(模拟 || 矩阵)
2017-09-07 16:24
295 查看
1.模拟
easy
#include <cstdio> #define N 500001 int n, m; int X , Y , x , y , a = 1, b = 1, p, q; char s [1]; int main() { int i; scanf("%d %d", &n, &m); for(i = 1; i <= n; i++) scanf("%d %d", &X[i], &Y[i]); for(i = 1; i <= m; i++) { scanf("%s", s[i]); if(s[i][0] == 'm') scanf("%d %d", &x[i], &y[i]); } for(i = m; i >= 1; i--) if(s[i][0] == 'm') { p += x[i]; q += y[i]; } else if(s[i][0] == 'x') { a *= -1; p *= -1; } else { b *= -1; q *= -1; } for(i = 1; i <= n; i++) printf("%d %d\n", X[i] * a + p, Y[i] * b + q); return 0; }
2.矩阵优化
详见 Matrix67
#include <cstdio> #include <cstring> #define N 500001 int n, m; int X , Y , x , y ; char s [2]; struct Matrix { int n, m; int a[11][11]; Matrix() { n = m = 0; memset(a, 0, sizeof(a)); } }sum; inline Matrix operator * (const Matrix x, const Matrix y) { Matrix ret; ret.n = x.n; ret.m = y.m; int i, j, k; for(i = 1; i <= x.n; i++) for(j = 1; j <= y.m; j++) for(k = 1; k <= y.n; k++) ret.a[i][j] += x.a[i][k] * y.a[k][j]; return ret; } int main() { int i; Matrix t; scanf("%d %d", &n, &m); sum.n = sum.m = 3; sum.a[1][1] = sum.a[2][2] = sum.a[3][3] = 1; for(i = 1; i <= n; i++) scanf("%d %d", &X[i], &Y[i]); for(i = 1; i <= m; i++) { scanf("%s", s[i]); if(s[i][0] == 'm') scanf("%d %d", &x[i], &y[i]); } for(i = m; i >= 1; i--) { memset(t.a, 0, sizeof(t.a)); t.n = t.m = 3; t.a[1][1] = t.a[2][2] = t.a[3][3] = 1; if(s[i][0] == 'm') t.a[1][3] = x[i], t.a[2][3] = y[i]; if(s[i][0] == 'x') t.a[1][1] = -1; if(s[i][0] == 'y') t.a[2][2] = -1; sum = t * sum; } for(i = 1; i <= n; i++) { memset(t.a, 0, sizeof(t.a)); t.n = 3; t.m = t.a[3][1] = 1; t.a[1][1] = X[i]; t.a[2][1] = Y[i]; t = sum * t; printf("%d %d\n", t.a[1][1], t.a[2][1]); } return 0; }
相关文章推荐
- 洛谷 P2129 L国的战斗续之多路出击(模拟)
- LuoguP1572 计算分数 解题报告【模拟】
- noip2014 螺旋矩阵 (模拟)
- [luoguP1627] 中位数(模拟?)
- 【GDOI2018模拟8.14】神奇的矩阵
- [Golang]Select多路选择的模拟实现
- 【JZOJ5335】【NOIP2017提高组模拟】早苗(DP、矩阵乘法)
- jzoj 3580. 【NOI2014模拟】矩阵染色
- Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作)
- 2017年鹅场模拟笔试之蛇型矩阵
- HDU 5097 Page Rank(矩阵模拟)——2014上海全国邀请赛——题目重现(感谢上海大学提供题目)
- (noip 模拟 Matrix)<逃避矩阵乘法的好方法#滑稽>
- 【openjudge 矩阵模拟合集】 openjudge 07 12 14
- [luoguP1058] 立体图(超级大模拟(¬︿̫̿¬☆))
- hdu4119 模拟旋转矩阵mask解密
- 螺旋矩阵-【无聊模拟】
- hdu 4382 模拟 矩阵连乘 高精度
- NOIP--螺旋矩阵(技巧+模拟)
- CODE[VS] NO.1083 Cantor表(类似蛇形矩阵,模拟,找规律)
- 模拟【p2239】 螺旋矩阵