洛谷每日三题--第二天

简介: 洛谷每日三题--第二天


目录

P1957 口算练习题

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P1308 [NOIP2011 普及组] 统计单词数

题目描述

输入格式

输出格式

输入输出样例

说明/提示

P1125 [NOIP2008 提高组] 笨小猴

题目描述

输入格式

输出格式

输入输出样例

说明/提示


P1957 口算练习题

题目描述

王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如 \texttt{5+8}5+8 的算式最好只要输入 \texttt 55 和 \texttt 88,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 \texttt{5+8=13}5+8=13 以及该算式的总长度 66。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。

输入格式

第一行为数值 ii

接着的 ii 行为需要输入的算式,每行可能有三个数据或两个数据。

若该行为三个数据则第一个数据表示运算类型,\texttt aa 表示加法运算,\texttt bb 表示减法运算,\texttt cc 表示乘法运算,接着的两个数据表示参加运算的运算数。

若该行为两个数据,则表示本题的运算类型与上一题的运算类型相同,而这两个数据为运算数。

输出格式

输出 2\times i2×i 行。对于每个输入的算式,输出完整的运算式及结果,第二行输出该运算式的总长度

输入输出样例

输入 #1复制

4

a 64 46

275 125

c 11 99

b 46 64


输出 #1复制

64+46=110

9

275+125=400

11

11*99=1089

10

46-64=-18

9


说明/提示

数据规模与约定

对于 50\%50% 的数据,输入的算式都有三个数据,第一个算式一定有三个数据。

对于所有数据,0<i\leq 500<i≤50,运算数为非负整数且小于 1000010000。

# include <iostream>
 using namespace std;
# include <string>
//char q[50];
string q;
string m;
//char m[50];
 int main()
 {
  int n;
  cin>>n;
 string p,k,z;
  int d,c;
  for(int i=0;i<n;i++)
  {
    cin>>p;
    if(p=="a")
    {
      cin>>q>>m;
        int d=stoi(q);
          //cout<<"到这了" ;
        int c=stoi(m);
      int e=c+d;
    string l=to_string(e);
  //  cout<<l;
        cout<<d<<"+"<<c<<"="<<d+c<<endl;
        cout<<q.length()+m.length()+2+l.length()<<endl;
          z=p;
    }
  else if(p=="b")
    {
        cin>>q>>m;
        int d=stoi(q);
        int c=stoi(m);
        string l=to_string(d-c);
        cout<<d<<"-"<<c<<"="<<d-c<<endl;
        cout<<q.length()+m.length()+2+l.length()<<endl;
          z=p;  
    }
    else if(p=="c")
    {
        cin>>q>>m;
        int d=stoi(q);
        int c=stoi(m);
      //  cout<<c*d; 
        string l=to_string(d*c);
    //  cout<<l;
        cout<<d<<"*"<<c<<"="<<d*c<<endl;
        cout<<q.length()+m.length()+2+l.length()<<endl; 
          z=p;
    }
    else
    {
        if(z=="a")
    {
        cin>>m;
        int d=stoi(p);
        int c=stoi(m);
    string l=to_string(c+d);
      cout<<d<<"+"<<c<<"="<<d+c<<endl;
      cout<<p.length()+m.length()+2+l.length()<<endl;
        //  z=p;
    }
  else if(z=="b")
    {
      cin>>m;
        int d=stoi(p);
        int c=stoi(m);
        string l=to_string(d-c);
        cout<<d<<"-"<<c<<"="<<d-c<<endl;
        cout<<p.length()+m.length()+2+l.length()<<endl;
         // z=p;  
    }
    else if(z=="c")
    {
          cin>>m;
        int d=stoi(p);
        int c=stoi(m);
        string l=to_string(d*c);
        cout<<d<<"*"<<c<<"="<<d*c<<endl;
        cout<<p.length()+m.length()+2+l.length()<<endl; 
        //  z=p;
    }
    }
//    cin>>a[i];
   }
 // cin>>a;
//  int len=strlen(a);
//  cout<<len;
//  
 }

P1308 [NOIP2011 普及组] 统计单词数

题目描述

一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例 1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2)。

输入格式

共 22 行。

第 11 行为一个字符串,其中只含字母,表示给定单词;

第 22 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

输出格式

一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 00 开始);如果单词在文章中没有出现,则直接输出一个整数 -1−1。

输入输出样例

输入 #1复制

To

to be or not to be is a question


输出 #1复制

2 0



输入 #2复制

to

Did the Ottoman Empire lose its power at that time

输出 #2复制

-1

说明/提示

数据范围

1\leq1≤ 第一行单词长度 \leq10≤10。

1\leq1≤ 文章长度 \leq10^6≤106。

noip2011 普及组第 2 题

# include <bits/stdc++.h>
using namespace std;
int main()
{
string n;
//cin>>n;
getline(cin,n);
   string m;
    getline(cin,m);
//cin>>m;
//全部小写化 
//transform(n.begin(),n.end(),n.begin(),::tolower);
//
//
//transform(m.begin(),m.end(),m.begin(),::tolower);
//int l=n.length();
 for (int i=0;i<n.length();++i){
        n[i]=tolower(n[i]);
    }
    for (int i=0;i<m.length();++i){
        m[i]=tolower(m[i]);
    }
m=' '+m+' ';
n=' '+n+' ';
if(m.find(n)==string::npos)
{
  cout<<-1;
 } 
else
{
  int alp=m.find(n);  //记录第一个出现得位置
  int blp=m.find(n),q=0;  //用来后边求出现次数 
  while(blp!=string::npos) 
  {
    ++q;
    //cout<<q<<endl;
    blp=m.find(n,blp+1);
  }
  cout<<q<<" "<<alp;
}
}

P1125 [NOIP2008 提高组] 笨小猴

题目描述

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:假设 \text{maxn}maxn 是单词中出现次数最多的字母的出现次数,\text{minn}minn 是单词中出现次数最少的字母的出现次数,如果 \text{maxn}-\text{minn}maxn−minn 是一个质数,那么笨小猴就认为这是个 Lucky Word,这样的单词很可能就是正确的答案。

输入格式

一个单词,其中只可能出现小写字母,并且长度小于 100100。

输出格式

共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出 Lucky Word,否则输出 No Answer

第二行是一个整数,如果输入单词是 Lucky Word,输出 \text{maxn}-\text{minn}maxn−minn 的值,否则输出 00。

输入输出样例

输入 #1复制

error

输出 #1复制

Lucky Word

2

输入 #2复制

olympic

输出 #2复制

No Answer

0

说明/提示

【输入输出样例 1 解释】

单词 error 中出现最多的字母 \texttt rr 出现了 33 次,出现次数最少的字母出现了 11 次,3-1=23−1=2,22 是质数。

【输入输出样例 2 解释】

单词 olympic 中出现最多的字母 \texttt ii 出现了 11 次,出现次数最少的字母出现了 11 次,1-1=01−1=0,00 不是质数。

(本处原题面错误已经修正)

noip2008 提高第一题

# include <bits/stdc++.h>
using namespace std;
char s[105];
int a[27];
int main()
{
cin>>s;
int l=strlen(s);
int c;
  for(int i=0;i<l;i++)
  {
  c=s[i]-=97;
    a[c]++;
  }
  sort(a,a+26);
//for(int i=0;i<26;i++)
//{
//  cout<<a[i]<<"---"<<i<<"  ";
//}
//cout<<a[25];
int max=a[25];
int min;
    for(int i=0;i<26;i++)
    {
      if(a[i]!=0)
      {
    min=a[i];
    break;    
      }
    }
    int y=max-min;
int r;
if(y==1||y==0)
{
    cout<<"No Answer"<<endl<<"0"; 
}
else
{
for(r=2;r<y;r++)
{
  if(y%r==0)
  {
    cout<<"No Answer"<<endl<<"0";
    break;
  }
} 
  if(r==y)
  {
    cout<<"Lucky Word"<<endl<<y;
  }
}
return 0; 
}


相关文章
|
机器学习/深度学习 算法
【第十五届蓝桥杯备赛(bushi,写文凑个数)】蓝桥OJ---长草
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 BFS Flood Fill算法
182 0
|
算法
【蓝桥杯集训·每日一题】AcWing 141. 周期
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 KMP算法
84 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第九天
大家好,我是泡泡,今天的题有些考验思维
117 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第九天
|
人工智能 机器人 定位技术
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
大家好我是泡泡,今天给大家带来船新的题解
127 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
|
机器学习/深度学习 定位技术
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十六天
大家好,我是泡泡,今天的题目很合理,很多模板,大家多多掌握,学习一下用各种思路解题,灵活多变!
272 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十六天
洛谷每日三题之第三天(第四天补做)
洛谷每日三题之第三天(第四天补做)
洛谷每日三题之第三天(第四天补做)
算法每日一题——第二天——一手顺子
算法每日一题——第二天——一手顺子
算法每日一题——第二天——一手顺子
蓝桥31日冲刺 | 每日三题题解报告 第一天
大家好,我是泡泡,今天给大家带来今日打卡三道题的题解
168 0
|
机器学习/深度学习
蓝桥真题31日冲刺 | 每日三题题解报告 第二天
大家好,我是泡泡,今天给大家带来今日打卡的四道题的题解
155 0