首页 > 其他分享 >每周习题讲解

每周习题讲解

时间:2023-04-23 20:15:51浏览次数:21  
标签:每周 int 多项式 cin && 讲解 using 习题 include

1.给你一个长度为 �n 的由大写的英文字母组成的字符串,请你找出出现频率最高的长度为2的子串

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
    char a[100];
    int b[27][27];
    char c[2];
int main(int argc, char** argv) {
    int n;
    cin>>n;
  
    for(int i=1;i<=n;i++){
    	cin>>a[i];
	}
	for(int i=1;i<n;i++){
		b[a[i]-'A'+1][a[i+1]-'A'+1]++;
	}
		int m=0;
	for(int i=1;i<n;i++){
	
		if(m<b[a[i]-'A'+1][a[i+1]-'A'+1]){
			
		m=b[a[i]-'A'+1][a[i+1]-'A'+1];
		c[0]=a[i];c[1]=a[i+1];
		}
	}
	cout<<c[0]<<c[1];
	return 0;
}
2.战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳 11 个人通过。假如有 22 个人相向而行在桥上相遇,那么他们 22 个人将无法绕过对方,只能有 11 个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。
#include <iostream>
#include<string.h>
#include<cmath>
#include<algorithm>
using namespace std;

int main()
{
	int l,n;
	int a[10000],b[10000];
	int x;
	cin>>l>>n;
	for(int i=1;i<=n;i++){
		cin>>x;
		a[i]=min(x,l-x+1);
		b[i]=max(x,l-x+1);
	}
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);
    cout<<a[n]<<" "<<b[n];
    return 0;}
3.

超市里有 �(1≤�≤105)n(1≤n≤105) 个寄包柜。每个寄包柜格子数量不一,第 �i 个寄包柜有 ��(1≤��≤105)ai​(1≤ai​≤105) 个格子,不过我们并不知道各个 ��ai​ 的值。对于每个寄包柜,格子编号从 1 开始,一直到 ��ai​。现在有 �(1≤�≤105)q(1≤q≤105) 次操作:

  • 1 i j k:在第 �i 个柜子的第 �j 个格子存入物品 �(0≤�≤109)k(0≤k≤109)。当 �=0k=0 时说明清空该格子。
  • 2 i j:查询第 �i 个柜子的第 �j 个格子中的物品是什么,保证查询的柜子有存过东西。

已知超市里共计不会超过 107107 个寄包格子,��ai​ 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。当然也有可能某些寄包柜中一个格子都没有

#include<bits/stdc++.h>
using namespace std;
map<int,int>a1[100001];
int n,q;
int main()
{
	cin>>n>>q;
	for(int i=0;i<q;i++)
	{
		int a,b,c,d;
		cin>>a;
		if(a==1)
		{
			cin>>b>>c>>d;
			a1[b][c]=d; 
		}
		else
		{
			cin>>b>>c;
			cout<<a1[b][c]<<endl; 
		}
	}
	return 0;
}
4.

小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。

小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 �i 艘到达的船,他记录了这艘船到达的时间 ��ti​ (单位:秒),船上的乘客数 ��ki​,以及每名乘客的国籍 ��,1,��,2,…,��,�xi,1​,xi,2​,…,xi,k​。

小K统计了 �n 艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的 2424 小时(2424 小时 =86400=86400 秒)内所有乘船到达的乘客来自多少个不同的国家。

形式化地讲,你需要计算 �n 条信息。对于输出的第 �i 条信息,你需要统计满足 ��−86400<��≤��ti​−86400<tp​≤ti​ 的船只 �p,在所有的 ��,�xp,j​ 中,总共有多少个不同的数。

#include <iostream>
#include <queue>
#include <cstring>
using namespace std;
int n,t,k;
int i=0,r=0;
int a[100001],b[1000001],c[1000001];
int ans;

int main(int argc, char** argv) {
      cin>>n;
      while(n--){
      	
      	cin>>t>>k;
      	while(k--){
      		a[++r]=t;
      		cin>>b[r];
      		if(!c[b[r]])ans++;
      		c[b[r]]++;
		  }
		  
		  while((t-a[i])>=86400){
		  	c[b[i]]--;
		  	if(!c[b[i]])ans--;
		  	i++;
		  	
		  
		  }
		  
		  
		  
		  	cout<<ans<<endl;
	  }
      return 0;
}
5.

一元 �n 次多项式可用如下的表达式表示:

�(�)=����+��−1��−1+⋯+�1�+�0,��≠0f(x)=an​xn+an−1​xn−1+⋯+a1​x+a0​,an​=0

其中,����ai​xi 称为 �i 次项,��ai​ 称为 �i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:

  1. 多项式中自变量为 �x,从左到右按照次数递减顺序给出多项式。

  2. 多项式中只包含系数不为 00 的项。

  3. 如果多项式 �n 次项系数为正,则多项式开头不出 + 号,如果多项式 �n 次项系数为负,则多项式以 - 号开头。

  4. 对于不是最高次的项,以 + 号或者 - 号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于 00 次的项,其系数的绝对值为 11,则无需输出 11)。如果 �x 的指数大于 11,则接下来紧跟的指数部分的形式为“��xb”,其中 �b 为 �x 的指数;如果 �x 的指数为 11,则接下来紧跟的指数部分形式为 �x;如果 �x 的指数为 00,则仅需输出系数即可。

  5. 多项式中,多项式的开头、结尾不含多余的空格。 

  6. #include<cmath>
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    
    int main(){
        cin>>n;
        int m[n];
    for(int i=n;i>=0;i--){
        cin>>m[i];
    }
    for(int i=n;i>=0;i--){
        if(m[i]==0&&i!=n)cout<<"";
        else if(m[i]>1&&i==n)cout<<m[i]<<"x^"<<i;
        else if(m[i]<-1&&i==n)cout<<m[i]<<"x^"<<i;
        else if(m[i]==1&&i==n)cout<<"x^"<<i;
        else if(m[i]==-1&&i==n)cout<<"-"<<"x^"<<i;
        else if(m[i]>1&&i>1&&i<n)cout<<"+"<<m[i]<<"x^"<<i;
        else if(m[i]==1&&i>1&&i<n)cout<<"+"<<"x^"<<i;
        else if(m[i]<-1&&i>1&&i<n)cout<<m[i]<<"x^"<<i;
        else if(m[i]==-1&&i>1&&i<n)cout<<"-"<<"x^"<<i;//
        else if(m[i]>1&&i==1)cout<<"+"<<m[i]<<"x";
        else if(m[i]==1&&i==1)cout<<"+"<<"x";
        else if(m[i]<-1&&i==1)cout<<m[i]<<"x";
        else if(m[i]==-1&&i==1)cout<<"-"<<"x";
        else if(i==0&&m[i]<0)cout<<m[i];
        else if(i==0&&m[i]>0)cout<<"+"<<m[i];
    
    }
    
    
    return 0;}
    6.

    读入�N个整数,利用折半(二分)插入排序法对这些数排序,输出排序后的�N个数,两个数之间用空格间隔。

    这里排序指的是升序。

  7. #include<iostream>
    
    using namespace std;
    
    int main(int argc, char** argv) {
        int n;
        cin>>n;
        int a[n+1];int d;
        for(int i=1;i<=n;i++){
        	 cin>>a[i];
    	}
    	for(d=n/2;d>=1;d=d/2){
    	
    	for(int i=2;i<=n;i++){
    		a[0]=a[i];
    		int j=i-d;
    		while(a[0]<a[j]&&j>0){
    			a[j+d]=a[j];
    			j=j-d;
    			
    		}
    		a[j+d]=a[0];
    		
    	}
    	}
    	for(int i=1;i<=n;i++){
    		cout<<a[i]<<" ";
    	}
    	
          return 0;}
    7

    读入�N个整数,利用冒泡排序法对这些数排序,输出排序后的�N个数,两个数之间用空格间隔。

    这里排序指的是升序。

    #include <iostream>
    
    using namespace std;
    template<class T>
    void BubbleSort(T r[],int n){
    	int exchange=n;
    	int bound=0;
    	while(exchange){
    		bound=exchange;
    		exchange=0;
    		for(int i=1;i<bound;i++){
    			if(r[i]>r[i+1]){
    				int tm=r[i];
    				r[i]=r[i+1];
    				r[i+1]=tm;
    				exchange=i;
    			}
    		}
    	}
    }
    int main() {
    	int n;int i;
    	int a[1001];
    	cin>>n;
    	for(i=1;i<=n;i++){
    		cin>>a[i];
    	}
        BubbleSort(a,n);
    	for(int j=1;j<=n;j++){
    		cout<<a[j]<<" ";
    	}
    	return 0;
    }

标签:每周,int,多项式,cin,&&,讲解,using,习题,include
From: https://www.cnblogs.com/wss23333/p/17347571.html

相关文章

  • 王道408操作系统-4.3文件系统 习题总结
    文件系统第一题用户使用文件系统实现对文件的按名存取,选B第二题选B,超级块是用来描述文件系统的第三题文件的存储空间实际上是对(外存空间区)的组织和管理。第四题第五题索引节点用来存放文件的描述信息,所以选B虚拟文件系统虚拟文件系统,简称VFS(Virtual......
  • 王道408操作系统-4.2文件目录 习题总结
    错题复盘第一题散列法一般不用来检索目录,因为想要避免散列冲突就需要大量的存储空间来存放目录,造成不必要的浪费。在树形目录中检索时,应从当前目录开始逐级检索。在上图中,当我想要查找文件N时,使用文件路径/D/p/N查找,很明显分量名P不在D之下,继续往下查找没有任何意义,这时就......
  • mysql综合练习题
    作业1第一题D错误。别名有空格要用“”都引起来第三题别名和之前的列名都可以使用作业2SELECT*FROMempSELECT*FROMdeptSELECT*FROMsalgrade--作业2--2.查看dept表和emp表的结构DESCdept;DESCemp;--3.1显示所有部门的名称SELECTdnameFROMd......
  • Python习题
    文本词频统计题目:一篇文章,出现了哪些词?哪些词出现的最多?请统计hamlet.txt文件中出现的英文单词情况,统计并输出出现最多的10个单词,注意:(1)单词不区分大小写,即单词的大小写或组合形式一样;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮......
  • 入门案例认证流程图讲解、思路分析
    入门案例认证流程图讲解 概念速查:Authenticcation接口:它的实现类,表示当前访问系统的用户,封装了用户相关信息。AuthenticcationManager接口:定义了认证Authenticcation的方法UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法。......
  • Linux练习题
    61.(多选题)社区发行版的特点包括A.厂商主导的开发B.采用开放开发模式C.社区开发者主导的开发D.由厂商提供支持和服务正确答案:62.(多选题)下面属于国际类别开源许可证(Internationallicenses)的是A.ApacheLicense2.0B.MulanPSLv2C.ServerSidePublicLicenseD.......
  • Vue3快速上手+俩种创建方式+主要源码讲解
    一.Vue3快速上手2020年9月19日凌晨,尤雨溪正式发布了Vue.js3.0版本,代号:OnePiece。此框架新的主要版本提供了更好的性能、更小的捆绑包体积、更好的TypeScript集成、用于处溪理大规模用例的新API,并为框架未来的长期迭代奠定了坚实的基础。3.0版本的开发周期长达两年多,期间......
  • mysql练习题1
    2、查询“生物”课程比“物理”课程成绩高的所有学生的学号;SELECTC.student_id,C.SHENGWU,D.WULIFROM(SELECTA.student_id,A.numberASSHENGWUFROMsockeALEFTJOINcorseBONA.corse_id=B.cidWHEREB.cname='生物')ASCLEFTJOIN(SELECTsocke.stud......
  • pta程序设计辅助平台练习题
    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:012345678910M:10X98765432 ......
  • 编程打卡:C语言趣味编程习题做
    编程打卡:C语言趣味编程习题做完数问题描述完数是因子相加等于它本身的数字,求一个范围内的完数。设计思路遍历这个范围内的数字,求它的因子,然后判断是否为完数即可。流程图graphA[开始]-->B[inputN,i=2]-->C{i<=N}--Yes-->D[j=1,sum=0]-->E{j<=i/2}--Yes-->F{i%j==0}--Yes--......