鱼C论坛

 找回密码
 立即注册
查看: 4482|回复: 34

[已解决]梦想护卫舰 第21期 解决题目

[复制链接]
发表于 2023-2-5 17:15:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 sfqxx 于 2023-2-6 15:01 编辑

他们见你们那么厉害,只好把你们带到关押zhangjinxuan的位置
没想到,这里还设了3道题目?!
那么,请作答

第一题(水题)
(非原创)如果你在Idle种不小心把内置函数赋值了,那么如何撤销呢?
请至少说出2种有效方法

第二题:(原创)在python种如何用代码在一行内输入2个数字,中间有空格
例子:
  1. 2 5
复制代码

(2)那3个数呢?

第三题:实验题
上题目!
字幕君累了,见这个网页(注:需要登陆)
没登陆看这→https://www.luogu.com.cn/
登陆了看这→https://www.luogu.com.cn/problem/P9033?contestId=98078

奖励随机,没有答案!

制作不易,评个分呗 (VIP不扣荣誉和贡献的啦)
最佳答案
2023-2-5 19:11:17
1. https://fishc.com.cn/forum.php?m ... 138&pid=6137054
2. a, b = map(int, input().split())
3.
  1. def ten_to_two(x):
  2.     return bin(x)[2:]

  3. def two_to_ten(x):
  4.     return int(x, 2)

  5. def solve(a, b, c):
  6.     if b > c:
  7.         if two_to_ten('1' + (len(ten_to_two(b))-1) * '0') > c or a == 1:
  8.             print(-1)
  9.             return
  10.         print(two_to_ten('1' + (len(ten_to_two(b))-1) * '0'), two_to_ten(ten_to_two(b)[1:]), end = ' ')
  11.         print(*([0] * (a-2)))
  12.         return
  13.     if b <= c:
  14.         print(b, end = ' ')
  15.         print(*([0] * (a-1)))
  16.         return

  17. n = int(input())
  18. for i in range(n):
  19.     a, b, c = map(int, input().split())
  20.     solve(a, b, c)
复制代码

感觉还是 @zhangjinxuan 发的贴比较好

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-5 19:08:37 From FishC Mobile | 显示全部楼层
本帖最后由 dolly_yos2 于 2023-2-5 20:05 编辑

不用 IDLE,好奇一下这两种方法是不是应该都可行?
魔法版:
  1. import os;os.execlp("python", "python")
复制代码

正常版:
  1. locals().pop('<被覆盖的名字>')
复制代码


第二题没意思

第三题等待会再编辑上来(似乎并不需要登录,还是登录与否看到的内容不同(不会吧)?)
很快 C 就(终于)会有标准库中的 clz 之类的函数啦!
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. static inline uint8_t count_effective_bits(uint32_t value){
  4.     uint8_t result = 0;
  5.     if(value > 0xffff){ result += 16; value >>= 16; }
  6.     if(value >   0xff){ result +=  8; value >>=  8; }
  7.     if(value >    0xf){ result +=  4; value >>=  4; }
  8.     switch(value){
  9.         case 7: case 6: case 5: case 4:
  10.             result += 1;
  11.         case 3: case 2:
  12.             result += 1;
  13.         case 1:
  14.             result += 1;
  15.         case 0:
  16.             break;
  17.         default:
  18.             result += 4;
  19.             break;
  20.     }
  21.     return result;
  22. }
  23. int main(){
  24.     scanf("%*u");
  25.     unsigned int n, k, m;
  26.     while(scanf("%u%u%u", &n, &k, &m) == 3){
  27.         if(k > m && n == 1){ printf("-1\n"); continue; }
  28.         if(k <= m){
  29.             printf("%u", k);
  30.             for(unsigned int i = 1; i < n; i++) printf(" 0");
  31.             putchar('\n');
  32.             continue;
  33.         }
  34.         uint8_t effective_bits = count_effective_bits(m);
  35.         unsigned int base = 1 << (effective_bits - 1);
  36.         unsigned int limit = (1 << effective_bits) - 1;
  37.         if(k > limit){ printf("-1\n"); continue; }
  38.         printf("%u %u", base, k - base);
  39.         for(unsigned int i = 2; i < n; i++) printf(" 0");
  40.         putchar('\n');
  41.     }
  42.     return 0;
  43. }
复制代码

评分

参与人数 1荣誉 +4 贡献 +3 收起 理由
sfqxx + 4 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 19:11:17 | 显示全部楼层    本楼为最佳答案   
1. https://fishc.com.cn/forum.php?m ... 138&pid=6137054
2. a, b = map(int, input().split())
3.
  1. def ten_to_two(x):
  2.     return bin(x)[2:]

  3. def two_to_ten(x):
  4.     return int(x, 2)

  5. def solve(a, b, c):
  6.     if b > c:
  7.         if two_to_ten('1' + (len(ten_to_two(b))-1) * '0') > c or a == 1:
  8.             print(-1)
  9.             return
  10.         print(two_to_ten('1' + (len(ten_to_two(b))-1) * '0'), two_to_ten(ten_to_two(b)[1:]), end = ' ')
  11.         print(*([0] * (a-2)))
  12.         return
  13.     if b <= c:
  14.         print(b, end = ' ')
  15.         print(*([0] * (a-1)))
  16.         return

  17. n = int(input())
  18. for i in range(n):
  19.     a, b, c = map(int, input().split())
  20.     solve(a, b, c)
复制代码

感觉还是 @zhangjinxuan 发的贴比较好

评分

参与人数 1荣誉 +3 贡献 +3 收起 理由
sfqxx + 3 + 3 下次就算做的不好也别说[doge]

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 19:53:09 | 显示全部楼层
  1. #include <bits/stdc++.h>
  2. using namespace std;

  3. typedef long long ll;
  4. ll T, n, m, k, temp;
  5. bool s = 0;

  6. int highbit(ll x){
  7.     int ans = 0;
  8.     while(x){
  9.         x >>= 1;
  10.         ans++;
  11.     }
  12.     return ans;
  13. }

  14. int main(){
  15.     ios::sync_with_stdio(0);
  16.     cin.tie(0);

  17.     cin >> T;
  18.     while(T--){
  19.         cin >> n >> k >> m;
  20.         if(highbit(k) > highbit(m) || (n == 1 && k > m)){
  21.             cout << -1 << endl;
  22.         }
  23.         else{
  24.             while(n > 1 && k){
  25.                 cout << (1 << (highbit(k) - 1)) << " ";
  26.                 n--;
  27.                 k -= ((1 << (highbit(k) - 1)));
  28.             }
  29.             cout << k << " ";
  30.             for(int i = 1; i <= n - 1; i++) cout << 0 << " ";
  31.             cout << endl;
  32.         }
  33.     }

  34.     return 0;
  35. }
复制代码

评分

参与人数 1荣誉 +3 贡献 +2 收起 理由
sfqxx + 3 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:01:21 From FishC Mobile | 显示全部楼层
tommyyu 发表于 2023-2-5 19:11
1. https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=224138&pid=6137054
2. a, b = map( ...

***
小心不给您最佳!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:26:21 | 显示全部楼层
tommyyu 发表于 2023-2-5 19:11
1. https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=224138&pid=6137054
2. a, b = map( ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:26:37 | 显示全部楼层
dolly_yos2 发表于 2023-2-5 19:08
不用 IDLE,好奇一下这两种方法是不是应该都可行?
魔法版:
正常版:

全部做完才有机会最佳答案哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:27:32 | 显示全部楼层
后面呢,我就被就出来了,拯救zhangjinxuan的故事也结束了,宝箱也重新回到了手中,然后……然后又继续编

题没啥意思,不想丸
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:27:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:28:37 | 显示全部楼层

本期应是21期,另外,不要说 po jie 题目,换一个,解题,好不好,因为 po jie 好像会审核
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:28:55 | 显示全部楼层
zhangjinxuan 发表于 2023-2-5 20:27
后面呢,我就被就出来了,拯救zhangjinxuan的故事也结束了,宝箱也重新回到了手中,然后……然后又继续编{: ...

进入幻境,还是答题
循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:30:02 | 显示全部楼层
zhangjinxuan 发表于 2023-2-5 20:28
本期应是21期,另外,不要说 po jie 题目,换一个,解题,好不好,因为 po jie 好像会审核

原来如此

评分

参与人数 1鱼币 +5 收起 理由
zhangjinxuan + 5 你看,我回复一个 pojie 我就吞帖了

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:30:46 | 显示全部楼层
sfqxx 发表于 2023-2-5 20:28
进入幻境,还是答题
循环

破解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:31:50 | 显示全部楼层
sfqxx 发表于 2023-2-5 20:26
全部做完才有机会最佳答案哦

哈哈,可不是为了最佳来的,有趣才是第一出发点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:32:47 | 显示全部楼层
dolly_yos2 发表于 2023-2-5 20:31
哈哈,可不是为了最佳来的,有趣才是第一出发点

行,这种想法能理解,那么就加点奖励吧
(我也想要评分)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:33:00 | 显示全部楼层
本帖最后由 tommyyu 于 2023-2-5 20:44 编辑
sfqxx 发表于 2023-2-5 20:28
进入幻境,还是答题
循环


我有一个嚎主意
但是这个主意可能会让高山把你的工资扣完,而且@zhangjinxuan 可能要多蹲几年大牢
救zhangjinxuan时,你们先走了你和zhangjinxuan之间距离的一半,外星人给你们出了一道题,才能再把下一半路走完
走到一半的一半时,又出了一道题
每再走一半就会再出几道题
这样就能一直出(shuǐ)题了

点评

我很赞同!: 5.0
我很赞同!: 5
想要评分  发表于 2023-2-5 20:34

评分

参与人数 1鱼币 +1 收起 理由
sfqxx + 1 感谢提供思路,那么就采取这种想法吧

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2023-2-5 20:35:03 | 显示全部楼层
破解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-5 20:43:50 | 显示全部楼层
tommyyu 发表于 2023-2-5 20:33
我有一个嚎主意
但是这个主意可能会让高山把你的工资扣完,而且@zhangjinxuan 可能要多蹲几 ...

听我说谢谢你~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-5 20:44:23 | 显示全部楼层
sfqxx 发表于 2023-2-5 20:32
行,这种想法能理解,那么就加点奖励吧
(我也想要评分)

不 要!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-5 20:45:50 From FishC Mobile | 显示全部楼层
zhangjinxuan 发表于 2023-2-5 20:44
不 要!!!!!!

?您不是给我了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表