当前位置: 首页 > news >正文

Candy

思路:一开始发现了规律对这些数分别%3,一共有四种情况,(1)0+0+0(2)0+1+2(3)1+1+1(4)2+2+2;代码借鉴了埃筛逻辑,设立一个数组a【i】,那么a【i】=a【i-1】+i和其他数组成的可行组合,那么就只用遍历1e6次(可能还是有点长),所以时间超限了,但这里还是记录一下(注意这个是错误代码)

#include<stdio.h>
#define ll long long
#define K 100007
int a[K]={0};
void is_a(){a[3]=1;a[4]=2;a[5]=4;for(int i=6;i<K;i++){int t=i%3;if(t==0){a[i]=a[i-1]+(i/3)*(i/3);}if(t==1){a[i]=a[i-1]+(int)(i/3)*(int)(i/3);}if(t==2){a[i]=a[i-1]+(int)(i/3+1)*(int)(i/3);}}
}
int main(){int N;is_a();while(scanf("%d",&N)!=EOF&&N!=0){printf("%d\n",a[N]%1000000007);}
}

然后是看完大佬的代码后。发现可以不用循环,直接计算得出,那就大大缩短了时间。首先已知N,可以知道num(0)=N/3;num(1)=(N+2)/3;num(2)=(N-1)/3;num(0)表示N前面模3等于0的数的个数,所以就只要用排列组合就可以计算,比如第一种情况,可以是C(num(0),3)=num(0)*(num(0)-1)*(num(0)-2)/3*2*1;

AC代码

#include<stdio.h>
#define ll long long
#define MOD 1000000007
int main(){ll N;while(scanf("%lld",&N)!=EOF&&N!=0){ll n0,n1,n2;n0=N/3;n1=(N+2)/3;n2=(N+1)/3;ll ans=0;//0 0 0if(n0>=3){ans=(ans+n0*(n0-1)*(n0-2)/6)%MOD;}//1 1 1if(n1>=3){ans=(ans+n1*(n1-1)*(n1-2)/6)%MOD;}//2 2 2if(n2>=3){ans=(ans+n2*(n2-1)*(n2-2)/6)%MOD;}//1 2 0ans=(ans+n0*n1*n2)%MOD;printf("%lld\n",ans);}
}

http://www.dtcms.com/a/594993.html

相关文章:

  • 网站策划做营销推广怎么创建一个论坛
  • 个人做动漫资源网站有哪些嘉兴网站制作案例
  • 线程需要重点掌握的部分
  • 无锡高端网站建设咨询中文域名注册查询
  • 网站建设品牌营销长春关键词搜索排名
  • 宁夏建设厅网站6免费注册帐号qq
  • 找第三方做网站 需要注意网站建设具体步骤
  • DeepSeek全维度应用指南
  • 【C++】vector的迭代器失效问题,(什么是迭代器失效,为什么会产生迭代器失效,怎么避免迭代器失效问题)
  • 郑州网站建设需要多少钱wordpress 系统找不到指定的文件.
  • 网站平台设计费用产品免费发布平台
  • 湖南网站排名遵义网上制作网站
  • 网站建设一般要多大空间wordpress 按别名
  • 不写代码做网站手机网站建站工作室
  • 淘宝客网站模板下载资讯文章网站模板
  • 外贸网站建设公司效果1688seo优化是什么
  • 定制企业网站建设网页制作作业100例
  • 自己做个网站需要些什么站长工具seo综合查询问题
  • 炽乐清网站建设荣耀商城
  • MCP入门:让AI与外部世界真正连接
  • 贵州省城乡与住房建设厅网站专业网站建设微信官网开发
  • 网站开发安全文档网址大全最新版
  • 低多边形生成网站做网站 一级 二级
  • arm day1
  • 景安网站上传完还要怎么做成品影视app开发工具
  • LoRa 与 LoRaWAN 技术解析:物理层原理、网络架构与典型物联网应用场景
  • 网站开发的交付文档建网站可行性分析
  • 免费推广网站地址大全链接制作软件
  • 做网站项目收获东莞做阀门的网站
  • 动漫电影做英语教学视频网站有哪些余姚网站建设找哪家