AOJ1024 Cleaning Robot 2.0

本文解析了一个来自AIZU ONLINE JUDGE的题目,该题要求根据特定条件构造一个二维矩阵,矩阵中的元素只能是两种颜色。文章详细介绍了如何通过确定第一行的状态来推导出整个矩阵的构造方法,并提供了一段C++代码实现。

先说一说这个OJ:貌似是11区某大学ACM的OJ,叫AIZU ONLINE JUDGE,貌似还可以看到部分犇的代码。。。跪跪跪

然后知道这个OJ是某场比赛安利的= =

接下来将做法:

首先我们可以发现每个点周围两种颜色的个数都是2...(不要问我为什么)

然后可以发现,构成图形是由2 * 2的同色的地砖或者围成一圈的同色地砖且每边的长度都是偶数,详见样例(不要问我为什么,因为很重要所以说两遍)

接着可以发现,如果第一行的状态确定了,整个解就确定了,而且第一行的状态可以做到和k一一对应(不要问我为什么,因为很重要所以说三遍)

然后就可以直接进行构造了。。。

对于一个点(x, y),它上面的点(x, y - 1)的周围另外三个点的颜色都已经确定了,故也可以将它的颜色确定

 

 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 using namespace std;
 5 typedef long long ll;
 6 const int N = 100;
 7 const int dx[] = {1, -1, 0, 0};
 8 const int dy[] = {0, 0, 1, -1};
 9 
10 int n;
11 ll K;
12 int mp[N][N];
13 
14 inline bool out (int x) {
15     return x <= 0 || x > n;
16 }
17 
18 #define X i + dx[k]
19 #define Y j + dy[k]
20 int main() {
21     int i, j, k, cnt;
22     while (scanf("%d%lld", &n, &K), n) {
23         --K;
24         if (K >= (1ll << (n / 2)) || (n & 1)) {
25             puts("No");
26             putchar('\n');
27             continue;
28         }
29         memset(mp, -1, sizeof(mp));
30         for (i = 1; i <= n; ++i)
31             mp[1][i] = ((K >> (n - i >> 1)) & 1);
32         for (i = 1; i < n; ++i)
33             for (j = 1; j <= n; ++j) {
34                 for (k = cnt = 0; k < 4; ++k) {
35                     if (out(X) || out(Y)) continue;
36                     if (mp[X][Y] == mp[i][j]) ++cnt;
37                 }
38                 if (cnt == 2) mp[i + 1][j] = !mp[i][j];
39                 else mp[i + 1][j] = mp[i][j];
40             }
41         for (i = 1; i <= n; ++i) {
42             for (j = 1; j <= n; ++j)
43                 putchar(mp[i][j] ? 'E' : '.');
44             putchar('\n');
45         }
46         putchar('\n');
47     }
48     return 0;
49 }
View Code

 

转载于:https://www.cnblogs.com/rausen/p/4335357.html

在车辆工程中,悬架系统的性能评估和优化一直是研究的热点。悬架不仅关乎车辆的乘坐舒适性,还直接影响到车辆的操控性和稳定性。为了深入理解悬架的动态行为,研究人员经常使用“二自由度悬架模型”来简化分析,并运用“传递函数”这一数学工具来描述悬架系统的动态特性。 二自由度悬架模型将复杂的车辆系统简化为两个独立的部分:车轮和车身。这种简化模型能够较准确地模拟出车辆在垂直方向上的运动行为,同时忽略了侧向和纵向的动态影响,这使得工程师能够更加专注于分析与优化与垂直动态相关的性能指标。 传递函数作为控制系统理论中的一种工具,能够描述系统输入和输出之间的关系。在悬架系统中,传递函数特别重要,因为它能够反映出路面不平度如何被悬架系统转化为车内乘员感受到的振动。通过传递函数,我们可以得到一个频率域上的表达式,从中分析出悬架系统的关键动态特性,如系统的振幅衰减特性和共振频率等。 在实际应用中,工程师通过使用MATLAB这类数学软件,建立双质量悬架的数学模型。模型中的参数包括车轮质量、车身质量、弹簧刚度以及阻尼系数等。通过编程求解,工程师可以得到悬架系统的传递函数,并据此绘制出传递函数曲线。这为评估悬架性能提供了一个直观的工具,使工程师能够了解悬架在不同频率激励下的响应情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值