A. 放置石子

我们设第一格的东西为 \(x\) ,则接下来的格数为

\[2:1+x\\
3:2x+1\\
4:3x+2\\
5:5x+3\\
...
\]

易得x的系数就是原来的斐波那契额数列,而后面加上来的也是!我们可以打表

左边为系数表,右边为加的数表

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll xs[21] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765};
ll k[21] = {1, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181};
int main()
{
freopen("kela.in", "r", stdin);
freopen("kela.out", "w", stdout);
long long a, x, b;
while (cin >> a >> x >> b)
{
if ((x - k[a]) % xs[a] == 0)
printf("%lld\n", (x - k[a]) / xs[a] * xs[b] + k[b]);
else
puts("-1");
}
return 0;
}

B.连通块数

暴力进行dfs即可,这里注意,每次进行dfs的时候都要扩展完毕,然后后面一遇到没扩展的就扩展

#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int l, w, h, m;
int dx[7] = {0, 0, 0, 0, 0, 1, -1};
int dy[7] = {0, 0, 0, -1, 1, 0, 0};
int dz[7] = {0, 1, -1, 0, 0, 0, 0};
int a[N][N][N];
bool vis[N][N][N];
int ans = 0; void dfs(int x, int y, int z)
{
for (int i = 1; i <= 6; i++)
{
int tx = x + dx[i], ty = y + dy[i], tz = z + dz[i];
if (tx < 1 || tx > l || ty < 1 || ty > w || tz < 1 || tz > h || vis[tx][ty][tz])
continue;
if (abs(a[x][y][z] - a[tx][ty][tz]) <= m)
{
vis[tx][ty][tz] = 1;
dfs(tx, ty, tz);
}
}
} int main()
{
freopen("engineer.in", "r", stdin);
freopen("engineer.out", "w", stdout);
cin >> l >> w >> h;
cin >> m;
for (int i = 1; i <= l; i++)
for (int j = 1; j <= w; j++)
for (int k = 1; k <= h; k++)
cin >> a[i][j][k];
for (int i = 1; i <= l; i++)
for (int j = 1; j <= w; j++)
for (int k = 1; k <= h; k++)
{
if (!vis[i][j][k])//就是这里
{
ans++;
vis[i][j][k] = 1;
dfs(i, j, k);
}
}
cout << ans << endl;
return 0;
}

C.股票问题

反悔贪心模板题目

#include <bits/stdc++.h>
using namespace std;
int n;
priority_queue<int, vector<int>, greater<int>> q;
int main()
{
freopen("b.in", "r", stdin);
freopen("b.out", "w", stdout);
long long ans = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
int k;
cin >> k;
if (!q.empty() && q.top() < k)////如果今天的卖出股票比之前的某一天卖出股票更优的话,就买回之前的股票,然后再卖出今天的股票
ans += k - q.top(), q.pop(), q.push(k);
q.push(k);
}
cout << ans << endl;
return 0;
}

D.灯泡开关

考虑加上一个等差数列。

怎么维护呢?先差分这个数组,举个例子,如果要在0 0 0 0 0 0 0 0 0 0 0中的3-7加一个从1开始的等差数列,

0 0 1 2 3 4 5 0 0 0 0差分后变成0 0 1 1 1 1 1 -5 0 0 0,就是一个区间+1后在末尾减掉最后一个数,

再差分一次,0 0 1 1 1 1 1 -5 0 0 0就变成了0 0 1 0 0 0 0 -6 5 0 0,发现等差数列差分两次后的数组只涉及三个数的修改。

所以我们每次更新原来的答案数组的差分再差分数组,最后前缀和还原差分数组以及还原原数组即可。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6 + 10;
int n, m;
ll a[N];
ll cnt[N][2];//cnt[i]表示以i为舒适值最多少走多少
//0,1分别是因为这是一个环差分。
ll check()
{
ll res = 0;
for (int i = 2; i <= n; i++)
{
if (a[i] > a[i - 1])
res += a[i] - a[i - 1];
else
res += a[i] + m - a[i - 1];
}
return res;
} void change(int l, int r, int s)
{
// cout << l << ' ' << r << ' ' << s << endl;
cnt[l][0] += s;
cnt[r + 1][0] -= s;
cnt[l + 1][1] += 1;
cnt[r + 1][1] -= (r - l + 1);
cnt[r + 2][1] += (r - l);
} int main()
{
freopen("light.in", "r", stdin);
freopen("light.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> a[i]; for (int i = 2; i <= n; i++)
{
if (a[i] > a[i - 1])
{
if (a[i] - a[i - 1] >= 2)
change(a[i - 1] + 2, a[i], 1);
}
else
{
if (m - a[i - 1] >= 2)
change(a[i - 1] + 2, m, 1), change(1, a[i], m - a[i - 1]);
if (m - a[i - 1] == 1)
change(1, a[i], 1);
if (m == a[i - 1])
{
if (a[i] >= 2)
change(2, a[i], 1);
}
}
}
for (int i = 2; i <= m + 1; i++)
cnt[i][0] += cnt[i - 1][0], cnt[i][1] += cnt[i - 1][1];
for (int i = 2; i <= m + 1; i++)
cnt[i][1] += cnt[i - 1][1];
ll ans = 0;
for (int i = 1; i <= m; i++)
ans = max(ans, cnt[i][0] + cnt[i][1]);
cout << check() - ans << endl;
return 0;
}

A组Day7的更多相关文章

  1. 纪中2018暑假培训day7提高b组改题记录

    由于今天太颓了,所以没有解释 t1: Description 码零鼠是一只很喜欢mx数学的神犇,上面那个不是ta本人的样子.这天,ta在研究一个神奇的数列,这个数列是这样的:a0 = 1an = ai ...

  2. 热情组——项目冲刺 Day7

    项目相关 作业相关 具体描述 班级 班级链接 作业要求 链接地址 团队名称 热情组 作业目标 实现软件制作,以及在福大的传播 Github链接 链接地址 SCRUM部分: 成员昵称 昨日目标 开始时间 ...

  3. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

  4. python_way.day7 模块(configparser,xml,shutil,subprocess)、面向对象(上)(创建类,类的构成,函数式编程与面向对象编程的选择,类的继承)

      python_way.day7 1.模块 configparser,xml,shutil,subprocess 1.模块 a.configparser 用于处理特定格式的文件,其本职上使用open ...

  5. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day7

    <团队作业第三.第四周>五小福团队作业--Scrum 冲刺阶段--Day7 一.项目燃尽图 二.项目进展 [20172301郭恺第七天的进展] 第七天完成的任务: 代码整合,界面调整为相对 ...

  6. sqli-labs学习笔记 DAY7

    DAY7 sqli-labs阶段总结 基本步骤 判断是否报错 判断闭合符号 判断注入类型 构建payload 手工注入或者编写脚本 基本注入类型 报错型注入 floor公式(结果多出一个1):and ...

  7. 2019暑期金华集训 Day7 动态规划

    自闭集训 Day7 动态规划 LOJ6395 首先发现这个树的形态没啥用,只需要保证度数之和是\(2n-2\)且度数大于0即可. 然后设\(dp_{i,j}\)表示前\(i\)个点用了\(j\)个度数 ...

  8. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  9. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  10. SQLSERVER将一个文件组的数据移动到另一个文件组

    SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...

随机推荐

  1. JavaScript的Map和WeakMap

    熟悉JavaScript的Map和WeakMap Map Map的键/值可以是任何类型 基本API 初始化映射: //使用new关键字和Map构造函数进行初始化 const m1 = new Map( ...

  2. 分布式TCC事务相关问题

    TCC分别是Try,Confirm,Cancel,分为三阶段. 第一阶段Try:业务检查及资源预留,尝试事务操作但不提交. 第二阶段Confirm:事务操作提交. 第三阶段Cancel:如果Try阶段 ...

  3. Anaconda+PyCharm+Pytorch/tensorflow环境配置个人总结

    Anaconda是一个非常方便的python版本管理工具,可以很方便地切换不同版本的Python进行测试.同时不同版本之间也不存在相互的干扰. PyCharm是一款常见的Python IDE,pyto ...

  4. Vue源码学习(一):数据劫持(对象类型)

    好家伙,了解一下Vue如何实现数据劫持 1.Vue中data的使用 首先,我得搞清楚这玩意的概念,我们先从vue的使用开始吧 想想看,我们平时是如何使用vue的data部分的? 无非是这两种情况 (你 ...

  5. Web端上传数据到OSS

    阿里云文档:参考文献 更正第三点:用户带着从服务器获取的数据签名和文件上传到OSS,这样做可以保证安全性.减轻服务器负担. 1.操作步骤 ①新建Bucket ②创建后更改跨域设置 这一步是保证跨域请胯 ...

  6. Unity 游戏开发、03 基础篇 | C#初级编程

    C#初级编程 https://learn.u3d.cn/tutorial/beginner-gameplay-scripting 8 Update 和 FixedUpdate Update(不是按固定 ...

  7. 图解Spark排序算子sortBy的核心源码

    原创/朱季谦 一.案例说明 以前刚开始学习Spark的时候,在练习排序算子sortBy的时候,曾发现一个有趣的现象是,在使用排序算子sortBy后直接打印的话,发现打印的结果是乱序的,并没有出现完整排 ...

  8. Games101现代计算机图形学入门 - 作业1~8 集合含提高项总结

    Github 地址 :Games101 作业总结 Games101 官网:Games101 - 现代图形学入门 记录 Games101 Homework 系列 1 ~ 8 及相关作业提高项 环境安装 ...

  9. CH59X/CH58X/CH57X PWM使用

    以CH582M为例: CH582M有4+8组PWM这里的4路26位PWM(定时器提供),8路系统PWM(8位) 先看系统提供的PWM: 下列截图根据例程进行测试的 注:如需要使用PWM11则需要通过i ...

  10. ⭐volatile⭐ 用volatile关键字则会从内存中直接读取变量的值