首页 > 代码库 > Vijos P1785 同学排序【模拟】
Vijos P1785 同学排序【模拟】
同学排序
描述
现有m位同学,第1位同学为1号,第2位同学为2号,依次第m位同学为m号。要求双号的学生站出来,然后余下的重新组合,组合完后,再次让双号的学生站出来,重复n次,问这时有多少同学出来站着?
样例1
样例输入1
1989 5
样例输出1
1926
限制
1s
提示
【数据范围】
1≤n≤10
100≤m≤100000
题目链接:https://vijos.org/p/1785
分析:站出序号为偶数的人,如果总人数为奇数,剩余人数向上取整再折半就好了!
下面给出AC代码:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int n,m; 6 cin>>n>>m; 7 int i=1,ans=0; 8 while(i<=m) 9 {10 i++;11 ans+=n/2;12 n=(n+1)/2;13 }14 cout<<ans<<endl;15 return 0;16 }
Vijos P1785 同学排序【模拟】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。