【星航计划】2024.11 Div. 4 题解

2024 -- 星航计划 --十一月份 -- 基础语法

场切:ABC
不会:D

  • A.孤岛

    简单模拟。

  • B.魔法

    k90  a,b,c109long long 会爆。转为 __int128

  • C.质数和合数

    暴力从小到大枚举每个数,判断是否合法。

  • D.士气

    做法: 可以证明所有原 w(i) 相同的士兵肯定会一起删除,因为如果删去士兵 i ,可能影响的其他士兵有两种可能 w(i)=w(j)w(i)<w(j),后者不会影响到,因为 j 一定有比 i 重复士兵数量更多的另一维,因此利用桶对所有士兵求出 w(i),然后求出一个前缀和即可。

    点击查看代码
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e6+7;
    int n,s[N],f[N][3],g[N][3],ans[N];
    int main(){
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
      for(int j=0;j<=2;j++) scanf("%d",&f[i][j]),g[f[i][j]][j]++;
      for(int i=1;i<=n;i++)
      for(int j=0;j<=2;j++)
      s[i]=max(s[i],g[f[i][j]][j]);
      for(int i=1;i<=n;i++) ans[s[i]+1]++;
      for(int i=1;i<=n;i++) ans[i]+=ans[i-1];
      for(int i=1;i<=n;i++) printf("%d ",ans[i]);
      return 0;
    }
    
posted @   Star_F  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示