关注
// 第二个硬币问题,如果有错误,欢迎指正。
// dp[i][j] 表示从最低的二进制位到第 i 位,j = 0 表示无进位,j = 1 表示有进位的方案数
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll n;
ll dp[100][2];
int main(void) {
ll n;
while (cin >> n) {
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
dp[0][1] = 1;
if (n & 1) dp[0][1] = 0;
for (int i = 1; i <= 60; ++ i) {
if (n & (1LL<<i)) {
dp[i][0] += dp[i - 1][0];
dp[i][0] += dp[i - 1][1];
dp[i][1] += dp[i - 1][1];
} else {
dp[i][0] += dp[i - 1][0];
dp[i][1] += dp[i - 1][0];
dp[i][1] += dp[i - 1][1];
}
}
cout << dp[60][0] << endl;
}
return 0;
}
第三题,我是直接贪心,从上往下不断的砍。。 #include <bits/stdc++.h>
using namespace std;
int main(void) {
int a, b, A, B;
while (cin >> a >> b >> A >> B) {
bool flag = true;
int ans = 0;
while (A > a && B > b) {
if (A % 2 == 0 && B % 2 == 0) {
A /= 2; B /= 2;
} else if (A % 2 == 1 && B % 2 == 1) {
-- A; -- B;
} else {
flag = false;
break;
}
++ ans;
}
if (flag && A == a && B == b) cout << ans << endl;
else cout << -1 << endl;
}
return 0;
}
查看原帖
点赞 11
相关推荐
08-29 19:44
门头沟学院 Java
wish233:很强了,加上这个学历,一点小建议就是可以把你的项目做一个压测,比如说你的RPC,可以对比一下和http相比性能怎么样。还有你的秒杀,一定要自己压测一遍,确保不会出现数据不一致的问题。还有就是对于分布式锁的粒度一定要理清楚,这个很容易被问到。 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的mentor是什么样的人? #
12894次浏览 97人参与
# 牛友的志愿填报指南 #
33717次浏览 181人参与
# 快手技术岗信息交流阵地 #
171次浏览 2人参与
# 帮我看看,领导说这话什么意思? #
16445次浏览 90人参与
# 求职中的尴尬瞬间 #
1893次浏览 27人参与
# 怎么给家人解释你的工作? #
8245次浏览 60人参与
# 26届秋招公司红黑榜 #
24703次浏览 91人参与
# 求职低谷期你是怎么度过的 #
10687次浏览 214人参与
# 校招泡的最久的公司是哪家? #
10499次浏览 66人参与
# 从哪些方向判断这个offer值不值得去? #
13533次浏览 165人参与
# 你觉得mentor喜欢什么样的实习生 #
14927次浏览 396人参与
# 机械人集合!你是什么工程师? #
19396次浏览 91人参与
# 度小满求职进展汇总 #
11931次浏览 64人参与
# 牛客树洞,我想对你说 #
4567次浏览 64人参与
# 国企还是互联网,你怎么选? #
167839次浏览 1195人参与
# 没有家庭托举的我是怎么找工作的 #
17692次浏览 208人参与
# 实习必须要去大厂吗? #
149490次浏览 1555人参与
# 面试紧张时你会有什么表现? #
3187次浏览 35人参与
# 小红书求职进展汇总 #
121642次浏览 955人参与
# 得物app工作体验 #
27289次浏览 62人参与
# 还记得你第一次面试吗? #
340292次浏览 3879人参与
查看11道真题和解析