计蒜客 《程序设计竞赛体验课程》第一部分 快速提升代码能力

这一部分内容比较简单 直接把代码发上来 不想自己写的同学可以直接抱走~


 

练习题:a+b 问题

#include<bits/stdc++.h>
using namespace std;int main()
{int n,x,y;cin>>n;while(n--){cin>>x>>y;cout<<x+y<<endl;}
}

练习题:斐波那契数列

#include<bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;int a=1,b=1,c,i;if(n>2){for(i=3;i<=n;i++){c=(a+b)%1000000007 ;a=b;b=c;}cout<<c<<endl;}elsecout<<1<<endl;
}

练习题:矩阵旋转

#include<bits/stdc++.h>
using namespace std;int main()
{int n,m,i,j,a[205][205];cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++){cin>>a[i][j];}for(i=1;i<=m;i++){cout<<a[n][i];for(j=n-1;j>=1;j--){cout<<' '<<a[j][i];}cout<<endl;}} 

练习题:最大子阵

#include<bits/stdc++.h>
using namespace std;
int n,m,sums,anss,i,j,a[55][55],s[55][55],k;
int main()
{cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++){cin>>a[i][j];s[i][j]=s[i-1][j]+a[i][j];}anss=-0x7ffffff;for(i=1;i<=n;i++)for(j=i;j<=n;j++){sums=0;for(k=1;k<=m;k++){if(sums>=0)sums+=s[j][k]-s[i-1][k];elsesums=s[j][k]-s[i-1][k];if(sums>anss)anss=sums;}}cout<<anss<<endl;
}

练习题:四平方和

#include<bits/stdc++.h>
using namespace std;int main()
{int n,a,b,c,d;cin>>n;for(a=0;a*a<n;a++){for(b=a;b*b+a*a<n;b++){for(c=b;c*c+b*b+a*a<n;c++){if(sqrt(n-a*a-b*b-c*c)==(int)sqrt(n-a*a-b*b-c*c)){cout<<a<<' '<<b<<' '<<c<<' '<<(int)sqrt(n-a*a-b*b-c*c)<<endl;return 0;}}}}
}

练习题:A+B 问题

#include<bits/stdc++.h>using namespace std;
int n,lena,lenb,ai,bi,jin,lenmax,p,q,i,t=0;
int anss[100000];
int main()
{memset(anss,0,sizeof(anss));jin=0;string a;string b;cin>>a;cin>>b;lena=a.size();lenb=b.size();lenmax=max(lena,lenb);p=lena-1;q=lenb-1;for(i=lenmax-1;i>=0;i--){if(p<0)ai='0';elseai=a[p];if(q<0)bi='0';elsebi=b[q];        anss[i]=(ai-'0'+bi-'0'+jin)%10;jin=(ai-'0'+bi-'0'+jin)/10;p--;q--;}if(jin)cout<<jin;for(i=0;i<lenmax;i++)cout<<anss[i];cout<<endl;
}

练习题:A*B 问题

#include<iostream>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){string A,B;int ReverseA[1000+5];int ReverseB[1000+5];int a[1000+5];memset(a,0,sizeof(a));cin>>A>>B;int lenA = A.length();int lenB = B.length();// 得到逆转数组 for(int i=0;i<lenA;i++)ReverseA[i] = A[lenA-i-1]-'0';for(int i=0;i<lenB;i++)ReverseB[i] = B[lenB-i-1]-'0';// 计算 for(int i=0;i<lenA;i++)for(int j=0;j<lenB;j++){a[i+j] += ReverseA[i]*ReverseB[j];// 处理进位 if(a[i+j]>=10){a[i+j+1] += a[i+j]/10;a[i+j] %= 10;}}// 控制输出 bool flag = false;for(int i=lenA+lenB;i>=0;i--){if(a[i] && !flag || i==0)  // 答案为 0 的特殊情况 flag = true;else if(!a[i] && !flag)continue;    cout<<a[i];}return 0;
}

练习题:蒜头君的随机数

#include<bits/stdc++.h>using namespace std;set<int>a;int main()
{int n,x;cin>>n;while(n--){cin>>x;a.insert(x);}cout<<a.size()<<endl;set<int>::iterator it;bool flag=true;for(it=a.begin();it!=a.end();it++)  {if(flag){cout<<*it;flag=!flag;}elsecout<<' '<<*it;}}

练习题:交叉排序

#include<bits/stdc++.h>using namespace std;bool cmp(int a,int b)
{return a>b;
}int main()
{int n,i,l1,l2,r1,r2,a[100005];cin>>n>>l1>>r1>>l2>>r2;for(i=1;i<=n;i++)cin>>a[i];sort(a+l1,a+r1+1);sort(a+l2,a+r2+1,cmp);cout<<a[1];for(i=2;i<=n;i++){cout<<' '<<a[i];}
}

练习题:进制转换

#include<bits/stdc++.h>using namespace std;
stack<int>a;
int main()
{int x,n,r,flag=0;cin>>n>>r;if(n<0){flag=1;n=abs(n);}while(n>0){a.push(n%r);n=n/r;}if(a.empty()){cout<<0<<endl;return 0;}if(flag==1)cout<<'-';while(!a.empty()){x=a.top();if(x>=10)cout<<char(x-10+'A');elsecout<<x;a.pop();}
}

练习题:回文数

#include<bits/stdc++.h>using namespace std;int sum=0;
queue <int> qq;
void panduan (int n)
{string s;int m=n;while(m){s+=m%10+'0';m=m/10;}string k=s;reverse(k.begin(),k.end());if(s==k){//cout<<sum<<endl;//cout<<k<<endl;
        qq.push(n);return;}else{    //cout<<"s:"<<s<<' '<<"k:"<<k<<endl; int l=0;for(int i=0;i<s.size();i++){//cout<<pow(10,i)*(k[i]-'0')<<endl;+l+=pow(10,i)*(k[i]-'0');}//cout<<l<<endl;//cout<<n<<"--->";
        qq.push(n);sum++;panduan(l+n);}
}int main()
{int n;cin>>n;panduan(n);cout<<sum<<endl;while(sum>=1){cout<<qq.front()<<"--->";qq.pop();sum--;}cout<<qq.front()<<endl;
}

练习题:机器人

#include<bits/stdc++.h>
using namespace std;int x,y;void go(int f,int l)
{if(f==1){x+=l;}else if(f==2){y+=l;} else if(f==3){x-=l;}else if(f==4){y-=l;}
}int main()
{int n,s;cin>>n;int f=1;string str;while(n--){cin>>str>>s;if(str=="forward"){go(f,s);//cout<<x<<' '<<y<<' '<<f<<endl;
        }else if(str=="back"){if(f==1)go(f=3,s);else if(f==2)go(f=4,s);else if(f==3)go(f=1,s);else if(f==4)go(f=2,s);//cout<<x<<' '<<y<<' '<<f<<endl;
        }else if(str=="left"){if(f==1)go(f=2,s);else if(f==2)go(f=3,s);else if(f==3)go(f=4,s);else if(f==4)go(f=1,s);//cout<<x<<' '<<y<<' '<<f<<endl;
        }else if(str=="right"){if(f==1)go(f=4,s);else if(f==2)go(f=1,s);else if(f==3)go(f=2,s);else if(f==4)go(f=3,s);//cout<<x<<' '<<y<<' '<<f<<endl;
        }}cout<<x<<' '<<y<<endl;
}

练习题:表达式求值

#include<bits/stdc++.h>
using namespace std;int main()
{int x,temp,anss;char c;cin>>x;temp=x;anss=0;while(cin>>c>>x){if(c=='+'){anss+=temp%10000;anss=anss%10000;temp=x%10000;}else if(c=='*'){temp*=x%10000;temp=temp%10000;}//cout<<anss<<endl;
    }anss+=temp%10000;cout<<anss%10000<<endl;} 

练习题:HZF 爱斗牛

#include<bits/stdc++.h>
using namespace std;
int i,sum,flag,a[20],s[20],j,x;
int main()
{for(i=1;i<=5;i++){cin>>a[i];s[a[i]]++;}for(i=1;i<=13;i++){if(s[i]>=4){cout<<"quadra bomb orz"<<endl;return 0;}}sum=0;flag=0;for(i=1;i<=5;i++){if(a[i]>=5){flag=1;break;}sum+=a[i];}if(flag==0&&sum<=10){cout<<"penta calf"<<endl;return 0;}sum=0;for(i=1;i<=5;i++){if(a[i]>10){a[i]=10;}sum+=a[i];}for(i=1;i<=4;i++){for(j=i+1;j<=5;j++){if((a[i]+a[j])%10==0&&((sum-a[i]-a[j])%10==0)){cout<<"you can you up"<<endl;return 0;}}}for(x=1;x<=9;x++){for(i=1;i<=4;i++){for(j=i+1;j<=5;j++){if((a[i]+a[j])%10==x&&((sum-a[i]-a[j])%10==0)){cout<<"too young too simple:calf "<<x<<endl;return 0;}}}} cout<<"gg"<<endl;
}

练习题:显示屏输出

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <set>
using namespace std;
char pic[10][5][2]=
{//  第1行  第2行   第3行  第4行   第5行(1,3,5行,也就是日字的三横只有一笔,所以pic[1~10][{1,3,5}][1]=' '){{'-',' '},{'|','|'},{' ',' '},{'|','|'},{'-',' '}},//数字0的第一行,第二行,第三行……{{' ',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},//数字1的第一行,第二行,第三行……{{'-',' '},{' ','|'},{'-',' '},{'|',' '},{'-',' '}},{{'-',' '},{' ','|'},{'-',' '},{' ','|'},{'-',' '}},{{' ',' '},{'|','|'},{'-',' '},{' ','|'},{' ',' '}},{{'-',' '},{'|',' '},{'-',' '},{' ','|'},{'-',' '}},{{'-',' '},{'|',' '},{'-',' '},{'|','|'},{'-',' '}},{{'-',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},{{'-',' '},{'|','|'},{'-',' '},{'|','|'},{'-',' '}},{{'-',' '},{'|','|'},{'-',' '},{' ','|'},{'-',' '}}
};
int main()
{int ex,cnt=0,num[10];char str[100];cin>>ex;cin>>str;for(int i=0;str[i]!='\0';i++)num[i]=str[i]-'0';cnt = strlen(str);for(int row=1;row<=5;row++)//日字一共有5行
   {if(row%2==1)//日字的三横
       {for(int i=0;i<cnt;i++)//数字
           {cout<<" ";for(int j=0;j<ex;j++)//放大的倍数cout<<pic[num[i]][row-1][0];cout<<" ";if(i!=cnt-1)cout<<" ";}cout<<endl;}else{for(int i=0;i<ex;i++)//'|'放大的倍数
            {for(int j=0;j<cnt;j++)//数字
                {char a,b;a=pic[num[j]][row-1][0];b=pic[num[j]][row-1][1];cout<<a;for(int k=0;k<ex;k++)cout<<" ";cout<<b;if(j!=cnt-1)cout<<" ";}cout<<endl;}}}
}

练习题:得到整数 X

#include<bits/stdc++.h>
using namespace std;int main()
{int x,n,i,j,a[30];cin>>n>>x;for(i=0;i<n;i++){cin>>a[i];}int anss=0,sum=0;for(i=1;i<1<<n;i++){sum=0;for(j=0;j<n;j++){if(i&(1<<j)){sum+=a[j];}}if(sum==x)anss++;}cout<<anss<<endl;
}

练习题:幼儿园买玩具

#include<bits/stdc++.h>using namespace std;
int n,m,k,sum,anss=0,a[105][20],flags[20],flag,i,j,p,u,s;
int main()
{cin>>n>>m>>k;for(i=1;i<=n;i++){cin>>a[i][0];for(j=1;j<=a[i][0];j++){cin>>a[i][j];}}for(i=1;i<1<<k;i++){s=0;memset(flags,0,sizeof(flags));for(j=0;j<k;j++){if(1<<j&i){s++;flags[j]=1;}}if(s<=m){sum=0;for(p=1;p<=n;p++){flag=1;for(u=1;u<=a[p][0];u++){if(flags[a[p][u]-1]==0){flag=0;break;}}if(flag)sum++;}if(sum>anss)anss=sum;}}cout<<anss<<endl;
}

练习题:islands 打炉石传说

#include<bits/stdc++.h>using namespace std;typedef struct 
{int cost;int d;int w;
}node;
node a[15];
int n,i,j,anss,sum,s,flag;
int main()
{cin>>n;for(i=0;i<n;i++){cin>>a[i].cost>>a[i].d>>a[i].w;}anss=0;for(i=1;i<1<<n;i++){sum=0;s=0;flag=0;for(j=0;j<n;j++){if(1<<j&i){if(a[j].d==0)flag=1;sum+=a[j].w;s+=a[j].cost;}}if(s<=10&&sum>anss&&flag)anss=sum;}cout<<anss<<endl;
}

 

转载于:https://www.cnblogs.com/dyhaohaoxuexi/p/11576037.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原】AMR音频解码插件开发总结

近段时间一直在忙碌AMR音频解码插件的开发&#xff0c;由于对驱动开发和音频编解码知识了解不是很多&#xff0c;加之自身经验欠缺&#xff0c;致使开发过程中碰到太多棘手的问题。经过努力学习和领导的大力帮助下终于完成了插件的开发&#xff0c;现将开发过程中得来的经验总结…

GC算法 垃圾收集器

概述 垃圾收集 Garbage Collection 通常被称为“GC”&#xff0c;它诞生于1960年 MIT 的 Lisp 语言&#xff0c;经过半个多世纪&#xff0c;目前已经十分成熟了。 jvm 中&#xff0c;程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭&#xff0c;栈帧随着方法的进入…

Nginx----原理

原理 master-workers的机制的好处  首先&#xff0c;对于每个worker进程来说&#xff0c;独立的进程&#xff0c;不需要加锁&#xff0c;所以省掉了锁带来的开销&#xff0c;同时在编程以及问题查找时&#xff0c;也会方便很多。其次&#xff0c;采用独立的进程&#xff0c;可…

一个有趣的数学题

题目&#xff1a;abcde*4 edcba&#xff0c;求abcde 解题过程&#xff1a; 1. 首先确定a和e&#xff0c;a*4不可能是两位数&#xff0c;不然abcde*4的值肯定大于5位&#xff0c;所以a的取值为1或2&#xff0c;e为4或8&#xff1b; 2. 又e*4的的个位为a&#xff0c;则a2&#x…

JVM架构和GC垃圾回收机制--面试

JVM架构和GC垃圾回收机制详解 JVM架构图分析 下图&#xff1a;参考网络书籍&#xff0c;如有侵权请见谅 &#xff08;想了解Hadoop内存溢出请看&#xff1a; Hadoop内存溢出(OOM)分类、参数调优化&#xff09; JVM被分为三个主要的子系统 &#xff08;1&#xff09;类加载器…

学习HTML:iframe用法总结收藏

<iframe>是框架的一种形式&#xff0c;也比较常用到。 一&#xff1a;几个例子——演示iframe的基本用法 例1&#xff1a;<iframe width420 height330 frameborder0 scrollingauto src"URL" mce_src"URL"></iframe> 不用多说了&#xf…

java中线程池的几种实现方式

1、线程池简介&#xff1a; 多线程技术主要解决处理器单元内多个线程执行的问题&#xff0c;它可以显著减少处理器单元的闲置时间&#xff0c;增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为&#xff1a;T1 创建线程时间&#xff0c;T2 在线程中…

MySQL----分库分表

参考&#xff1a;https://mp.weixin.qq.com/s?__bizMzI5MzYzMDAwNw&mid2247487130&idx2&sn7d384ef9ca47b933e801fdd2459b6b2f&chksmec6e77c2db19fed4a3ed3a0625c1f318675a0a10fdb1ce8a31f032b91ee31377e1ee1e183258&mpshare1&scene23&srcid0927Uq…

IP过滤-驱动和应用程序通信

前段时间写一个IP过滤的驱动&#xff0c;以前没有接触过驱动&#xff0c;Google一把&#xff0c;网上有很多例子&#xff0c;不过都不能满足自己的需求&#xff0c;所以就参考大家的资料自己研究一下。呵呵。程序用了三层&#xff1a;第一层就是驱动来负责过滤数据包并把拦截的…

JVM架构和GC垃圾回收机制详解

JVM架构图分析 下图&#xff1a;参考网络书籍&#xff0c;如有侵权请见谅 &#xff08;想了解Hadoop内存溢出请看&#xff1a; Hadoop内存溢出(OOM)分类、参数调优化&#xff09; JVM被分为三个主要的子系统 &#xff08;1&#xff09;类加载器子系统&#xff08;2&#xff0…

IIS不能发布asp.net 应用程序

IIS不能发布asp.net 应用程序最近在写程序的时候&#xff0c;突然项目经理想发布一下网站看一下做的效果当我发布的时候遇到 下面的错误&#xff1a;&#xff1a;使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮&#xff0c;或以后重试。 名称以无效字符开头的…

线程高级篇-Lock锁和Condition条件

浅谈Synchronized: synchronized是Java的一个关键字,也就是Java语言内置的特性,如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,执行代码块时,其他线程 便只能一直等待,等待获取锁的线程释放锁,而获取锁的线程释放锁会有三种情况: 1).获取锁的线程执行完该代码…

CERL 2.0 预告:Erlang Style Concurrency + 状态机

开始构想CERL 2.0版本。特点&#xff1a; Erlang Style Concurrency&#xff08;Erlang 风格并发&#xff09; 状态机&#xff0c;突破 Erlang Style Concurrency 模型的缺陷。在目前的 CERL 库 SDL接口描述语言的基础上&#xff0c;CERL 2.0 还将是一门语言&#xff08;用于实…

枚举类型创建实例

使用枚举创建单例模式 使用枚举创建的单例模式&#xff1a; public enum EasySingleton{INSTANCE; } 代码就这么简单&#xff0c;你可以使用EasySingleton.INSTANCE调用它&#xff0c;比起你在单例中调用getInstance()方法容易多了。 我们来看看正常情况下是怎样创建单例模…

前端学习(41):背景实现视觉差效果

首先准备三张图片 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible&quo…

CAS原理分析

在JDK 5之前Java语言是靠synchronized关键字保证同步的&#xff0c;这会导致有锁&#xff08;后面的章节还会谈到锁&#xff09;。 锁机制存在以下问题&#xff1a; &#xff08;1&#xff09;在多线程竞争下&#xff0c;加锁、释放锁会导致比较多的上下文切换和调度延时&…

深入理解HashMap(原理,查找,扩容)

面试的时候闻到了Hashmap的扩容机制&#xff0c;之前只看到了Hasmap的实现机制&#xff0c;补一下基础知识&#xff0c;讲的非常好 原文链接&#xff1a; http://www.iteye.com/topic/539465 Hashmap是一种非常常用的、应用广泛的数据类型&#xff0c;最近研究到相关的内容&…

密码加密和解密

/// <summary> /// 字符串加密 /// </summary> /// <param name"original">明文</param> /// <returns>密文</returns> public static string Encrypt(string original) { …

【C++深度剖析教程1】C++中的经典问题解析-c++中的对象的构造顺序与析构顺序

c中的对象的构造顺序与析构顺序 问题一 当程序中存在多个对象时&#xff0c;如何确定这些对象的析构顺序&#xff1f; 一.单个函数创建时构造函数的调用顺序 1.调用父类的构造过程 2.调用成员变量的构造函数(调用顺序与声明顺序相同) 3.调用类自身的构造函数 而析构函数与…

ASP.NET MVC 重点教程一周年版 第七回 UrlHelper 【转】

这节讲 一下ASP.NET MVC中的Helper。 何谓Helper,其实就是在View中为了实现一些灵活功能而写的方法组。 其实ASP.NET MVC的View是Aspx的页面,本身可以声明定义方法,那为什么要有Helper呢&#xff1f; 其实无非是将界面与逻辑分离,而且Asp.net MVC也并不只支持Aspx一种View&…