全部评论
楼主第一题是按位或,第二题是宝藏吗
第一题打气球:第一行输入气球个数,第二行输入每个气球的分数, 只能打两枪:①一枪未中0分②中一枪得分为此气球的分③中两枪两气球分数的或 求所有情况分数总和? 第二题:寻宝:第一行输入三个数为宝藏个数,每次飞行距离,飞行次数 其他每行输入第一个宝藏与之距离和money 求最大money? 全凭记忆,来个来个讲讲第二题😂
第二题dfs直接就过了,毕竟范围很小; 和昨天米哈游笔试的难度比一个天上一个地下。。。 贴个代码: #include <iostream> using namespace std; int value[101] = {}; int dist[101] = {}; int n, m, times; int maxnum = 0; void dfs(int nowdist, int lefttime,int laststep,int totalvalue) { if (lefttime == 0) { if (totalvalue > maxnum)maxnum = totalvalue; return; } if (laststep == n || (dist[laststep + 1] - dist[laststep]) > m) { if (totalvalue > maxnum)maxnum = totalvalue; return; } for (int i = laststep + 1; i <= n && (dist[i] - dist[laststep]) <= m; i++) { dfs(dist[i], lefttime - 1, i, totalvalue + value[i]); } return; } int main() { cin >> n >> m >> times; for (int i = 1; i <= n; i++) { cin >> dist[i] >> value[i]; } if (n == 1 ) { cout << value[1]; return 0; } if (n == 0) { cout << 0; return 0; } dfs(0,times,1,value[1]); cout << maxnum; return 0; }
求原题!
dfs暴力只有18%。。
第一题一直36%完全没想到会int溢出,第二题是一道递归ac了。
很多人需要第二题的代码,我直接发评论区了,java写的。直接暴力递归就ac了,根本不需要改动态规划。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int M = in.nextInt();
int K = in.nextInt();
int[] km = new int[N];
int[] gold = new int[N];
for (int i = 0; i < N; i++) {
km[i] = in.nextInt();
gold[i] = in.nextInt();
}
int max = gold[0];
System.out.println(maxGold(N, M, K - 1, km, gold, max, 1,0));
}
public static int maxGold(int N, int M, int K, int[] km, int[] gold, int max, int gg,int start) {
if (gg == N || (km[gg]-start) > M || K < 0) {
return max;
}
int a = maxGold(N, M, K - 1, km, gold, gold[gg]+ max, gg + 1,km[gg]);
int b = maxGold(N, M, K, km, gold, max, gg + 1,start);
return Math.max(a,b);
}
我也是
第一题一直36%,有大佬讲一下嘛😢
楼主第二题有思路了吗,求解
🤣第二题我连测试用例都没过,然鹅有55%,我觉得就是背包问题。然后第一题一直超时...
第二题dp了36分儿 第一题超时18分。。
第一题是两颗子弹吗
第二题就是根据距离穷举,36不知道错哪了
第一题按位或,统计一下每个位的1的数量就可以了,复杂度n*32,C/C++要用long long,第二题dp一下就可以了,dp[i][j]表示前i个宝藏跳j次的最大金币数,复杂度n的三次方
问问丝路。我自己有一个思路:固定跑K次,每次M内找Max值。问问做出来的大佬是什么思路。
第一题 python, 73%, 不知道为什么?有用python ac的吗
第二题建图 graph[][]表示是否可达,dfs寻找最大值 但超时了
想问一下,第一题有大佬用python做ac的吗
第一题模拟,结果用long 存。 第二题枚举向前可达点算最大金币数就行,二维dp。
相关推荐
今天 16:50
门头沟学院 Java 点赞 评论 收藏
分享