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

广东企业网站建设报价企业品牌推广

广东企业网站建设报价,企业品牌推广,内蒙古网站建设信息,溧阳网站建设哪家好问题描述 小蓝有 k 种卡片, 一个班有 n 位同学, 小蓝给每位同学发了两张卡片, 一位同学的两张卡片可能是同一种, 也可能是不同种, 两张卡片没有顺序。没有两位同学的卡片都是一样的。 给定 n, 请问小蓝的卡片至少有多少种? 输入格式 输入一行包含一个正整数表示 n 。 输出…

问题描述

小蓝有 k 种卡片, 一个班有 n 位同学, 小蓝给每位同学发了两张卡片, 一位同学的两张卡片可能是同一种, 也可能是不同种, 两张卡片没有顺序。没有两位同学的卡片都是一样的。

给定 n, 请问小蓝的卡片至少有多少种?

输入格式

输入一行包含一个正整数表示 n 。

输出格式

输出一行包含一个整数, 表示答案。

样例输入

6

样例输出

3

样例说明

小朋友们手中的卡片可能是: (1,1),(1,2),(1,3),(2,2),(2,3),(3,3)(1,1),(1,2),(1,3),(2,2),(2,3),(3,3) 。

评测用例规模与约定

对于 50% 的评测用例, 1≤n≤10^4 。

对于所有评测用例, 1≤n≤10^9 。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

问题分析

这是一个组合数问题,需要注意的有两点:

  1. 两张同样的卡片也可以作为一种组合,所以跳出循环的条件是 c(k,2)+k>=n 。根据组合数的公式很容易用代码实现。
  2. 计算组合数的复杂度主要集中在求解阶乘的过程中。考虑到 n 的最大值为10^9,需要使用记忆化数组来缩短计算时间。在这类比赛中,程序处理千万级的运算量时已经很勉强了,所以我在这里将记忆化数组的长度设为10^7,即一千万。

 

 Python代码如下:

n=int(input())
dp=[-1 for i in range(10**7)]  # 阶乘数的记忆化数组# 阶乘
def fact(X):ans=1  # 阶乘结果x=Xwhile x>1:if dp[x]!=-1:  # 已知x的阶乘ans*=dp[x]dp[X]=ansreturn anselse:ans*=xx-=1dp[X]=ansreturn ans# 组合数
def c(n,m):return fact(n)/(fact(m)*fact(n-m))k=0
while c(k,2)+k<n:k+=1print(k)

可惜的是,由于无法将记忆化数组的长度设为10^9,通过率只有80%。读者如发现不足之处,欢迎批评指正。

 

http://www.khdw.cn/news/28831.html

相关文章:

  • 志迅东莞网站建设宁波seo链接优化
  • 做网站 做app好建立自己的网站
  • javascript特效网站bt kitty磁力猫
  • 无锡响应式网站设计重庆关键词优化
  • 介绍旅游美食的网站模板百度seo优化系统
  • 郑州网站改版公司网站关键词排名优化推广软件
  • 网站网页怎么设计seo销售好做吗
  • 西安有哪些做网站的公司好重庆seo结算
  • 顺德网站建设报价网络营销项目策划
  • 深圳南山做网站的公司seo经验是什么
  • 免注册制作网站竞价推广是什么意思
  • 临朐县网站建设武汉网络推广优化
  • 国外网站大牛不懂英语可以做吗seo技术培训茂名
  • 网站源码可以做淘宝客电商运营培训大概多少学费
  • 做化工的网站网络营销产品推广方案
  • 网络设计专业有前途吗大连seo
  • 专做宝宝辅食的网站网站如何seo推广
  • 广西做网站百度广告多少钱
  • 营销型网站设计网站网络营销的方法有哪些?举例说明
  • 手机网站赏析厦门seo屈兴东
  • 麻涌网站建设市场监督管理局上班时间
  • 外贸网站推广软件aso优化公司
  • 黔西南州做网站全网整合营销平台
  • 网站首页页脚设计键词优化排名
  • 公司网站封面怎么做怎么学互联网怎么赚钱
  • 辽阳网站开发公司昆明seo优化
  • 网站怎么做伪静态处理西安外包网络推广
  • v9双语版网站怎么做百度top排行榜
  • 11个免费网站空间引流推广效果好的app
  • 汕头模板建站平台成品在线视频免费入口