第二题: #include <iostream> #include <vector> #include <map> #include <cstring> #include <string> #include <algorithm> using namespace std; int arr[1005]; int ans[1005]; void init() { memset(arr, 0, sizeof(arr)); arr[0] = 1; arr[1] = 1; for (int i = 2; i <= 1000; ++i) { if (arr[i] == 0) { int tmp = i + i; while(tmp <= 1000) { arr[tmp] = 1; tmp += i; } } } for (int i = 2; i <= 1000; ++i) { if (arr[i] == 0) { int tmp = i * i; while(tmp <= 1000) { arr[tmp] = 2; tmp *= i; } } } ans[0] = 0; ans[1] = 0; for (int i = 2; i <= 1000; ++i) { if (arr[i] == 0 || arr[i] == 2) { ans[i] = ans[i-1] + 1; } else { ans[i] = ans[i-1]; } } } int main() { ios::sync_with_stdio(false); //freopen("input.txt", "r", stdin); init(); int t; cin >> t; cout << ans[t] << endl; return 0; } 第三题:数位dp,可以用dfs搞。但是手生,没调处来,ggdfs(l, r, f1, f2, f3).l表示数字开始的位,r表示数字结束的位f1表示当前数字前面有没有1f2表示前面有没有给位f3表示后面有没有借位可能可以简化。。自己代码写的太复杂了,bug没有调处来。。
点赞 评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务