- 入门测试3
论坛之皮卡丘办(大家可以在这里讨论,大家都来吧,我负责管理)
- @ 2025-6-12 21:14:11
规则:
文明交流不骂人 发帖对题不灌水
• 违规:删帖+私信提醒
9 条评论
-
俞添 LV 6 @ 2025-7-18 20:16:36谢谢!!!
-
@ 2025-7-16 14:54:40
大神,讲下1307吧!!!
-
@ 2025-7-15 15:46:31
谢
-
@ 2025-7-15 11:14:32( ̄▽ ̄)
-
@ 2025-7-10 15:19:4935
-
@ 2025-6-13 16:36:26415
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c,d,ee=0; cin>>b>>c; for (int i=b;i<=c;i++) { d=0; a=i; while(a){ d=d+a%10; a=a/10; } if (d==7)ee++; } cout<<ee; return 0; } -
@ 2025-6-13 16:36:13#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c,d,ee=0; cin>>b>>c; for (int i=b;i<=c;i++) { d=0; a=i; while(a){ d=d+a%10; a=a/10; } if (d==7)ee++; } cout<<ee; return 0; }
-
@ 2025-6-12 21:15:33姜姜(音效),好久不见 今天讲讲418 有N个人围成一圈,编号从1到N 从1号开始报数,数到第m个人就将其淘汰 从下一个人重新开始报数,重复这个过程 直到只剩最后一人 在提到的变种问题中:
总人数是2k(k个好人和k个坏人) 好人编号1到k,坏人编号k+1到2k 需要找到最小的m,使得在第一个好人被杀之前,所有坏人都已被杀 以你给的例子n=6(即k=3)为例:
好人:1,2,3 坏人:4,5,6 当m=5时,死亡顺序是5,4,6,2,3,1 先杀坏人5 然后坏人4 然后坏人6 这时所有坏人都被杀死了,之后才杀好人2 所以m=5满足条件 要验证一个m是否满足条件,我们需要:
模拟整个淘汰过程 检查在第一个好人被杀之前,是否所有坏人都已被杀 找出满足这个条件的最小的m 这个问题需要编写算法来寻找最小的m,因为随着k增大,手动计算会变得非常复杂。通常的解决方法是:
从m=k+1开始尝试(因为m必须大于k才能保证第一轮不杀好人) 对每个m模拟淘汰过程 找到第一个满足条件的m 记得点赞 答案
#include<bits/stdc++.h> using namespace std; int main(){ int a[10000]={0}; int b; while(cin>>b) { if (b==0){ break; } int d=2*b; int c[10000]={0}; int e=1; for(int i=1;i<=b;i++) { c[i]=(c[i-1]+e-1)%(d-i+1); if(c[i]<b) { i=0; e++; } } a[b]=e; cout<<e<<endl; } return 0; }👍 1 -
@ 2025-6-12 21:14:34我会在这边发一些题解
👍 5
- 1