文章目录

  • 枚举
    • [#210733. 奶牛碑文](http://wikioi.cn/problem/210733)
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 思路
        • #1
        • #2
      • 代码
    • [#210792. 分解质因数](http://wikioi.cn/problem/210792)
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例
        • 样例输入#1
        • 样例输出#1
        • 样例输入#2
        • 样例输出#2
      • 数据范围与提示
      • 思路
      • 代码
    • [#10213. 质因数分解升级版](http://wikioi.cn/problem/10213)
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 思路
      • 代码
    • [#420. [NOI Online 入门组] 文具订购(本站数据)](http://wikioi.cn/problem/420)
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例
        • 样例输入#1
        • 样例输出#1
        • 样例输入#2
        • 样例输出#2
        • 样例输入#3
        • 样例输出#3
      • 数据范围与提示
        • 样例数据#3解释
        • 数据规模与约定
      • 思路
      • 代码

枚举

#210733. 奶牛碑文

题目描述

小伟暑假期间到大草原旅游,在一块石头上发现了一些有趣的碑文。碑文似乎是一个神秘古老的语言,只包括三个大写字母 COW。尽管小伟看不懂,但是令他高兴的是,COW 的顺序形式构成了一句他最喜欢的奶牛单词 “COW” 。现在,他想知道有多少次 COW 出现在文本中。如果 COW 内穿插了其他字符,只要 COW 字符出现在正确的顺序,小伟也不介意。甚至,他也不介意出现不同的 COW 共享一些字母。例如,CWOW 出现了1次 COWCCOW 算出现了2次 COWCCOOWW 算出现了8次 COW

输入格式

输入包括一行仅仅包括 "C","O","W" 的字符串

输出格式

输出 COW 作为输入字符串的子序列出现的次数(不一定是连续的)。提示:答案会很大,建议用 64 位整数(long long)。

样例输入

CCCOOW

样例输出

6

思路

#1

枚举遍历计算C的个数,C之后O的个数和O之后W的个数,所有字符个数相乘即可(乘法原理

#2

时间复杂度O(n)遍历字符串,统计C的个数,统计完C的个数则就能求出CO的个数,统计完CO最后就能求出COW的个数,逐次递进

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
ll len,ans,cntC,cntCO;
int main(){cin>>s;len=s.size();for(int i=0;i<len;i++){if(s[i]=='C'){cntC++;}else if(s[i]=='O'){cntCO+=cntC;}else if(s[i]=='W'){ans+=cntCO;}}printf("%lld",ans);return 0;
}

#210792. 分解质因数

题目描述

正整数分解为质因式,输出如下形式:如
2=23=34=2210=2×5100=22×522=2\\ 3=3\\ 4=2^2\\ 10=2\times 5\\ 100=2^2 \times 5^2 2=23=34=2210=2×5100=22×52

输入格式

输入一行,包含一个正整数nnn

输出格式

输出nnn的质因式表达, 要求质因数是从小到大的

样例

样例输入#1
2
样例输出#1
2=2
样例输入#2
100
样例输出#2
100=2^2*5^2

数据范围与提示

2≤n≤1092\leq n \leq 10^9 2≤n≤109

思路

使用试除法(如果这个数为2的倍数,就不用再去除4了)。如果一个数的除数可以除多个,则计算个数,然后根据格式输出即可

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,cnt;
bool flag=true;
int main() {scanf("%lld",&n);printf("%lld=",n);for(ll i=2;i<=sqrt(n);i++){//      ll x=i;while(n%i==0){//          if(!flag)printf("*");
//          printf("%lld",i);cnt++;n/=i;}if(cnt==1){if(!flag)printf("*");printf("%lld",i);flag=false;}else if(cnt>0){if(!flag)printf("*");printf("%lld^%lld",i,cnt);flag=false;}cnt=0;}if(n!=1){if(!flag)printf("*");printf("%lld",n);}return 0;
}

#10213. 质因数分解升级版

题目描述

求出区间[a,b]中所有整数的质因数分解。

输入格式

输入两个整数a,b。

输出格式

每行输出一个数的分解,形如k=a1a2a3…(a1< =a2< =a3…,k也是从小到大的)(具体可看样例)

样例输入

3 10

样例输出

3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5

思路

与上题基本一致,从一个数变成了一个区间内的一个数

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b;
int main() {scanf("%lld%lld",&a,&b);for(ll i=a;i<=b;i++){printf("%lld=",i);ll x = i;bool flag = true;// 试除法for (ll j = 2; j*j <= x; ++j){while (x % j == 0) {if (!flag) cout << "*";printf("%lld", j);flag = false;x /= j;}}if (x != 1) {if (!flag) cout << "*";printf("%lld\n", x);}else{printf("\n");}}return 0;
}

#420. [NOI Online 入门组] 文具订购(本站数据)

题目描述

小明的班上共有nnn元班费,同学们准备使用班费集体购买333种物品:

圆规,每个777元。

笔,每支444元。

笔记本,每本333元。

小明负责订购文具,设圆规,笔,笔记本的订购数量分别为a,b,ca,b,ca,b,c,他订购的原则依次如下:

nnn元钱必须正好用光,即7a+4b+3c=n7a+4b+3c=n7a+4b+3c=n

在满足以上条件情况下,成套的数量尽可能大,即a,b,ca,b,ca,b,c中的最小值尽可能大。

在满足以上条件情况下,物品的总数尽可能大,即a+b+ca+b+ca+b+c尽可能大。

请你帮助小明求出满足条件的最优方案。可以证明若存在方案,则最优方案唯一。

输入格式

输入仅一行一个整数,代表班费数量nnn。

输出格式

如果问题无解,请输出−1-1−1。

否则输出一行三个用空格隔开的整数a,b,ca,b,ca,b,c分别代表圆规、笔、笔记本的个数。

样例

样例输入#1
1
样例输出#1
-1
样例输入#2
14
样例输出#2
1 1 1
样例输入#3
33
样例输出#3
1 2 6

数据范围与提示

样例数据#3解释

a=2,b=4,c=1a=2,b=4,c=1a=2,b=4,c=1也是满足条件1,21,21,2的方案,但对于条件333,该方案只买了777个物品,不如a=1,b=2,c=6a=1,b=2,c=6a=1,b=2,c=6的方案。

数据规模与约定

对于测试点1∼6,保证n≤14.对于测试点7∼12,保证n是14的倍数。对于测试点13∼18,保证n≤100。对于全部的测试点,保证0≤n≤105。对于测试点1\sim 6,保证n\leq 14.\\ 对于测试点7\sim 12,保证n是14的倍数。\\ 对于测试点13\sim 18,保证n\leq 100。\\ 对于全部的测试点,保证0\leq n \leq 10^5。\\ 对于测试点1∼6,保证n≤14.对于测试点7∼12,保证n是14的倍数。对于测试点13∼18,保证n≤100。对于全部的测试点,保证0≤n≤105。

思路

枚举a和b,计算出c,判断如果加和为n,则表明有解,再根据题目条件,求解最优解,记录,最后如有解则输出,无解则输出-1.

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,ansa=-1,ansb=-1,ansc=-1,sum;
bool f;
int main(){scanf("%lld",&n);if(n<3){printf("-1");return 0;}for(ll a=n/7;a>=0;a--){for(ll b=(n-7 * a)/4;b>=0;b--){ll c=(n-7 * a-4*b)/3;if(7*a+4*b+3*c==n) {f=true;ll cur=min(a,min(b,c));ll ori=min(ansa,min(ansb,ansc));
//              printf("%lld %lld %lld",a,b,c);
//              break;if(cur>ori||cur==ori&&a+b+c>sum){ansa=a;ansb=b;ansc=c;sum=a+b+c;}}}}if(!f)printf("-1");else{printf("%lld %lld %lld",ansa,ansb,ansc);}return 0;
}

20201105枚举课后总结相关推荐

  1. 整理对应_JSP第二版课后习题答案【侵权联系我删除】

    JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785 JSP第二版课后习题答案下载:https://down ...

  2. 2017广东工业大学程序设计竞赛决赛 题解源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)...

    心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起&qu ...

  3. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  4. 11选5下期算法_本周六周日【高二直播】辅导网课预告:通用技术电控二三极管、多用电表测量、数字逻辑电路、解析枚举递归算法,2022浙江选考技术...

    01 第19-21讲 2020年11月28日29日开课目录 鲸学名师+考点精讲+系统提高 高二共3阶段精品课 夯实基础 冲刺技术选考97-100分! 11月28日[高二|提高|直播] 高二精品直播课讲 ...

  5. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  6. 课后作业(因博客源问题,发的邮箱作业,重新提交博客园)

    1.编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. 源代码://Yewen Wang   2015.10.04 package js; import javax.swing.J ...

  7. Java语法基础,课后实践

    2.数值的二进制表示 课后练习:阅读相应教材,或者使用互联网搜索引擎,弄清楚反码.补码跟原码这几个概念,然后编写示例程序,对正数.负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Jav ...

  8. Java语法基础----课后实践作业

    1.Enumtest.Java 代码: public class EnumTest {public static void main(String[] args) {Size s=Size.SMALL ...

  9. c语言结构体联合体与枚举考点,C语言-结构体+联合体+枚举

    #include #include #include //1.结构体:是一种构造数据类型 //结构体的用途:把不同的数据类型整合起来,成为一个自定义的数据类型 //1.1 定义一个结构体(定义结构体的 ...

最新文章

  1. 沙箱(Sandbox)
  2. react设置默认props
  3. 基于 EntityFramework 生成 Repository 模式代码
  4. 【技巧】搜狗输入法特殊技巧
  5. cookie session token区别_cookie、session与token的真正区别
  6. Java连接并操作SQLServer数据库
  7. 产品研发过程管理专题——基于产品的测试管理(用友软件测试流程初探)
  8. UVA1585 UVALive3354 Score【水题】
  9. ios开发--清理缓存
  10. code forces 1176 D. Recover it!
  11. 手机型号大全_2020值得入手的三款手机。每个优秀,选择哪一个?励志故事名言视频...
  12. Linux网络流量监控工具
  13. golang chan
  14. linux vi把一个文件中的内容复制到另一个文件,vim - 将内容从一个文件复制并粘贴到vi中的另一个文件...
  15. iOS7初体验(1)——第一个应用程序HelloWorld
  16. word文档设置了打开密码如何破解
  17. android p nokia 6,Nokia 6评测 | Nokia 6系统体验_Nokia 6怎么样_诺基亚最新手机_什么值得买...
  18. flash透明\flash置底无效\flash遮挡div的解决方法 兼容Firefox ,IE,chrome浏览器
  19. maven白小白(二)生命周期complie,package,install
  20. go 清空文件内容_回收站清空的文件怎么恢复?值得收藏的恢复方法!

热门文章

  1. Unity Vuforia AR生成详细教程
  2. Hololens2 Vuforia开发
  3. 给硬件工程师的入门课-电子工程师常用网站
  4. dropzone拖拽上传组件使用全记录
  5. ucms通用建站系统php,UCMS通用建站系统
  6. 数字集成电路_4.MOS管寄生电容
  7. 贪心算法解决单源最短路径问题
  8. SBAS与GBAS增强技术部分总结
  9. aqlserver实用程序_mssql sqlserver数据库监控方法分享
  10. 基于微信小程序的实验室管理的postmortem