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

临沂网站建设培训学校河北衡水网站建设

临沂网站建设培训学校,河北衡水网站建设,山东免费网络推广工具,河北新闻最新消息10条题目描述 输入一个正整数m,请输出从0到m中每一个数字二进制数中含有1的个数的总和,由于数值较大结果需要模100000. 输入格式 一个m 输出格式 二进制数中含有1的个数的总和s 输入输出样例 输入 2 输出 2 输入 5 输出 7 说明/提示 样例说明 20%的数据 m500 50%的数据 m500 50%的数据 m1000 70%的数据 m50000000 100%的数据 m100000000 内存限制500MB 知识点 统计kk这个数在二进制的表示下有几个1代码如下 #include iostream using namespace std;int main() {int kk;cinkk;int count 0;while(kk){kk kk (kk-1);//核心代码count;}coutcountendl;return 0; }解题思路: 这种解法,有几个1就执行几次。 把一个整数减去1再与原数字做按位与运算会把原数二级制位中最右边的1变成0.那么一个整数二进制表示中有几个1就可以进行几次这样的操作。 0111减去1变成0110二者进行与运算变成0110则把原数做右边的1变成0.循环往复直到全为0结束。 代码如下: #include iostream using namespace std;int main() {int m;cin m;int count 0;for (int i 0; i m; i) {int c i;while (c) {c c (c - 1);count;}count count % 100000;}cout count endl;return 0; }但是我们会发现上面的代码在运算过程会进行很多重复运算我们明明可以对这些数字进行记忆化在运算过程中之前算过的数我们就不要算了所以我们可以用dp 代码如下 #include iostream using namespace std; const int N 100000010; const int MOD 100000; int dp[N];int main() {int sum 0;int m;cin m;dp[0] 0;for (int i 1; i m; i) {dp[i] dp[i (i - 1)] 1;dp[i] % MOD;sum dp[i];sum % MOD;}cout sum endl;return 0; }
http://www.yutouwan.com/news/418981/

相关文章:

  • 高端网站建设必去磐石网络平面设计网站大全有哪些
  • 外贸网站建设是什么意思做有声小说网站
  • 北京网站开发哪家专业网站推广计划包含的主要内容
  • 宣传册设计与制作模板免费seo1视频发布会
  • 怎么注册网站域名唐山网站制作价格
  • 网站运营做产品需要哪些知识discuz做电影网站
  • 如何在jsp上做网站页面公司怎么做网站平台
  • 新郑市网站建设电子商务网站建设实训报告
  • 网站 流量攻击设计公司网站模板
  • 做网站要钱吗深圳购物网站建设
  • 求推荐好的网站建设平台潜江做网站的
  • 厦门网站建设那家好搜索引擎优化工具深圳
  • html5网站抓取高州女网红遇害案犯罪嫌疑人被抓获
  • 长春网站建设致电吉网传媒优公众号如何推广宣传
  • 自行建造网站做图片能去哪些网站
  • wordpress oday惠州seo博客报价
  • 做毕业证教育网站网站建设公司文案
  • 做网站用到的单词广告策划书前言范文
  • 东阳营销型网站建设品牌鱼爪网商城网站如何建设
  • 商城网站怎么做推广中国互联网站建设中心建站
  • 普宁17网站一起做网店衡水做网站技术
  • 网站初期内容挂机宝做网站可以吗
  • 推广网站优化seo教程上排名做网站要icp备案吗
  • 邯郸做网站找哪家好中国现在哪里建设最多
  • 高端建设网站公司哪家好WordPress会员月卡年卡
  • 河南网站建设平台小网站代码
  • 中国设计网站排行榜前十名优化seo
  • 网站80端口备案网站建设图片代码
  • 公司建网站一般多少钱郑州网站推广外包
  • 找别人做网站交货时应该注意什么类似凡科建站的网站