泰山挑夫1(菜鸟题解)
A题:
判断>2的偶数;
B题:(回溯)
#include <iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#include<cctype>
using namespace std;
int days,times;
int xt1[1000],xt2[1000];
int sum,i,j,k;
int a[1000];
int main()
{
cin>>days>>times;
for(i=1;i<=days;i++)
{
cin>>xt1[i]>>xt2[i];
}
for(i=1;i<=days;i++)
a[i]=xt1[i];
while(1)
{
sum=0;
for(i=1;i<=days;i++)
sum+=a[i];
if(sum==times)
{
cout<<"YES"<<endl;
for(i=1;i<=days;i++)
cout<<a[i]<<' ';
cout<<endl;
break;
}
i=1;
while(a[i]==xt2[i]&&i<=days)i++;
if(i>days)
{
cout<<"NO"<<endl;
break;
}
a[i]++;
}
}
C题:(模拟)
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<stack>
#include<algorithm>
using namespace std;
int n,i,j,k;
string a[100001];
string str;
int b[100001];
int main()
{
cin>>n;
memset(b,0,sizeof(b));
int k=1;
for(i=1;i<=n;i++)
{
cin>>a[k];
getchar();
int gs=1;
for(j=1;j<k;j++)
{
if(a[k]==a[j])//重复不存
{
gs=0;
b[j]++;//标记数组
str=a[k];
a[k]="";
break;
}
}
if(gs==0)
cout<<str<<b[j]<<endl;
else
{
cout<<"OK"<<endl;
k++;
}
}
return 0;
}
D题:(动态规划)
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<stack>
#include<algorithm>
using namespace std;
int n,wi,hi;
struct node
{
int w;
int h;
int fs;//标记位置
}wh[6005];
int i,j,kl,k;
int dp[6001];
int sum[6001];
int a[6001];
bool cmp(node a,node b)
{
if(a.w<b.w)
return true;
if(a.w>b.w)
return false;
if(a.w==b.w)
{
if(a.h<b.h)
return true;
if(a.h>=b.h)
return false;
}
}
int main()
{
cin>>n>>wi>>hi;
k=1;
for(i=1;i<=n;i++)
{
cin>>wh[k].w>>wh[k].h;
if(wh[k].w>wi&&wh[k].h>hi)(切掉不满足条件的)
{
wh[k].fs=i;
k++;
}
}
if(k==1&&(wh[1].w<=wi||wh[1].h<=hi))
{
cout<<'0'<<endl;
return 0;
}
//for(i=1;i<k;i++)
// cout<<wh[i].w<<' '<<wh[i].h<<' '<<wh[i].fs<<endl;
sort(wh+1,wh+k,cmp);
memset(dp,0,sizeof(dp));
for(i=1;i<k;i++)
{
for(j=1;j<i;j++)
{
if(wh[i].w>wh[j].w&&wh[i].h>wh[j].h)
if(dp[i]<dp[j]+1)
{
dp[i]=dp[j]+1;
sum[i]=j;//记录路径,把前后路径接在一起
}
}
}
int max1=-1,max0;
for(i=1;i<k;i++)//再次扫描
{
if(max1<dp[i])
{
max1=dp[i];
max0=i;
}
}
cout<<max1+1<<endl;//由于刚开始为0,最后要加1
i=max0;
int ks=0;
while(1)
{
a[ks++]=wh[i].fs;//数组a转移地址
i=sum[i];
if(i<=0)
break;
}
for(i=ks-1;i>=0;i--)//输出地址fs
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
E题:
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cctype>
#include<queue>
#include<vector>
using namespace std;
int a[5];
int i,j;
int main()
{
for(i=1;i<=4;i++)
cin>>a[i];
int glag[5]={0};//标记数组
//判断
if(abs(a[1]-a[2])<a[3]&&(a[1]+a[2])>a[3])
glag[1]=1;
if((a[1]+a[2])==a[3]||(a[1]+a[3])==a[2]||(a[2]+a[3])==a[1])glag[1]=2;
if(abs(a[1]-a[2])<a[4]&&(a[1]+a[2])>a[4])
glag[2]=1;
if((a[1]+a[2])==a[4]||(a[1]+a[4])==a[2]||(a[2]+a[4])==a[1])glag[2]=2;
if(abs(a[1]-a[4])<a[3]&&(a[1]+a[4])>a[3])
glag[3]=1;
if((a[1]+a[4])==a[3]||(a[1]+a[3])==a[4]||(a[4]+a[3])==a[1])glag[3]=2;
if(abs(a[4]-a[2])<a[3]&&(a[4]+a[2])>a[3])
glag[4]=1;
if((a[4]+a[2])==a[3]||(a[4]+a[3])==a[2]||(a[2]+a[3])==a[4])glag[4]=2;
int gs1=0;
int gs2=0;
int gs0=0;
for(i=1;i<=4;i++)//输出结果
{
if(glag[i]==1)
{
cout<<"TRIANGLE"<<endl;
gs1=1;
break;
}
if(glag[i]==2)
{
gs2=1;
}
}
if(gs2==1&&gs1==0)
cout<<"SEGMENT"<<endl;
if(gs2==0&&gs1==0)
cout<<"IMPOSSIBLE"<<endl;
return 0;
}
F题:
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cctype>
#include<stack>
#include<algorithm>
using namespace std;
int n,m,i,j;
char c;
char str[1000][1000];
int sum[1000]={0};
int main()
{
cin>>n>>m;
getchar();
cin>>c;
int k=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>str[i][j];
}
getchar();
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(str[i][j]==c)
{
if(isupper(str[i][j+1])&&(j+1)<=m)
{
int mc=str[i][j+1]-'A';
sum[mc]++;//标记
}
if(isupper(str[i][j-1])&&(j-1)>=1)
{
int mc=str[i][j-1]-'A';
sum[mc]++;
}
if(isupper(str[i+1][j])&&(i+1)<=n)
{
int mc=str[i+1][j]-'A';
sum[mc]++;
}
if(isupper(str[i-1][j])&&(i-1)>=1)
{
int mc=str[i-1][j]-'A';
sum[mc]++;
}
}
}
int s=0;
for(i=0;i<26;i++)
{
if(sum[i]&&i!=c-'A')
s++;
}
cout<<s<<endl;
return 0;
}
G题:
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cctype>
#include<queue>
#include<vector>
using namespace std;
long a[100005];
int i,j,n;
long sum1;
long sum2;
long sum,p,q;
int ans1,ans2;
int main()
{
cin>>n;
sum=0;
for(i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
}
p=1;q=n;//指针标记
sum1=0;//记录所吃的量
sum2=0;
ans1=0;//记录块数
ans2=0;
while(p<=q)
{
while(p<=q&&sum1<=sum2)
{
sum1+=a[p];
p++;
ans1++;
}
while(p<=q&&sum1>sum2)
{
sum2+=a[q];
q--;
ans2++;
}
}
//cout<<p<<' '<<q<<endl;
//cout<<sum1<<' '<<sum2<<endl;
cout<<ans1<<' '<<ans2<<endl;
return 0;
}
转载于:https://www.cnblogs.com/sdau--codeants/p/3234151.html
泰山挑夫1(菜鸟题解)相关推荐
- Xctf Reverse菜鸟题解之csaw2013reversing2
Xctf Reverse菜鸟题解之csaw2013reversing2 IDA Pro静态分析 x32dbg动态调试分析 绕过反调试机制 IDA Pro静态分析 x32dbg动态调试分析 绕过反调试机 ...
- 【菜鸟进阶之路】P5461 赦免战俘 题解笔记(持更)
1.这题和杨辉三角很像,可以找规律:每一个数字都是它上方数字加上右上方数字再模2. (1)2的n次方可以用二进制数左移的方式: C语言中1<<n是什么意思 (2)register声明的变量 ...
- 2019肇庆学院“菜鸟杯“程序设计竞赛题解
A 解锁专家 阿炳是一个精通文理的小机灵鬼,它是一个解锁专家,也是一个诗人.一天,阿炳受邀前往黄台甫马哈那坤弃他哇劳狄希阿由他亚马哈底陆浦欧叻辣塔尼布黎隆乌冬帕拉查尼卫马哈洒坦,也就是今天俗称的曼谷, ...
- 华为ac配置radius认证服务器_合作生态 | 升腾威讯云系统与华为泰山服务器完成产品互认证...
近日,福建升腾资讯有限公司与华为技术有限公司共同进行了升腾威讯云系统与华为泰山的产品测试认证. 测试结果表明:升腾威讯云系统V6在华为TaiShan 100平台上顺利安装.运行良好,且整体系统运行稳定 ...
- java计算整数出现的次数_[剑指offer题解][Java]1到n整数中1出现的次数
前言 众所周知,<剑指offer>是一本"好书". 如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白. 对于剑指offer题解这个系列,我的 ...
- 对分查找的最多次数_「剑指offer题解」数组中出现次数超过一半的数字
关注我--个人公众号:后端技术漫谈 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向. 原创博客主要内容 Java知识点复习全手册 Leetcode算法题解析 ...
- java queue 最大值_[剑指offer题解]队列的最大值/滑动窗口的最大值
前言 众所周知,<剑指offer>是一本"好书". 为什么这么说? 因为在技术面试中,它里面罗列的算法题在面试中出现的频率是非常非常高的. 有多高,以我目前不多的面试来 ...
- java 最大子数组_[剑指offer题解][Java]连续子数组的最大和
前言 众所周知,<剑指offer>是一本"好书". 如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白. 对于剑指offer题解这个系列,我的 ...
- 牛客2023年情人节比赛 (c/c++题解)
比赛链接:https://ac.nowcoder.com/acm/contest/51663 咳咳~~我突然发现牛客比赛里面,可能打的人最少的就是情人节专场了~~ 因为都去陪女朋友啦~~~,只有我们单 ...
最新文章
- 在PaddlePaddle中的Notebook代码片段
- servlet和action的区别
- GAN生成对抗网络-INFOGAN原理与基本实现-可解释的生成对抗网络-06
- java web hello world(一)
- Gradle系列(三):项目实践
- centos6上安装mysql8.0版本
- [dp]最长单调递增子序列LIS
- PowerShell远程连接到Windows
- C# WinForm关闭窗体确认
- hadoop常见问题汇总
- python实现完整的求解给定列表中所有的平衡点问题,是所有的平衡点
- OpenSift源代码编译过程记录
- python-线程互斥锁与递归锁
- 【问题7】集群部署时的分布式 session 如何实现?
- 修改firefox的ssh插件的xpi包,hook自已功能
- 实对称矩阵一定可以相似对角化
- 人工智能数学基础---定积分2:定积分的性质
- chrome浏览器书签同步_如何将Google Chrome浏览器的书签与手机同步
- 服务器 磁盘阵列数据恢复案例之:RAID6三块磁盘离线数据恢复过程
- 万众瞩目之下,ANGULAR 2终于正式发布啦!