A, C签到题

Gym 100989B

题意:给一个算LCS时得到的DP矩阵,然后根据这个矩阵让你算出两个符合条件的字符串

思路 :因为字符串长度<=25,然后可以先假设A字符串就是abcdef....,然后根据A算B就行。b[j]未确定时,令b[j]=a[i]即可;遇到b[j]已确定的情况就改变a[i],以及所有跟a[i]相同的字符。

/*************************************************************************File Name: B.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 11时58分21秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=110;
int dp[N][N];
char a[N],b[N];
bool vis_b[N];int main(){int n,m,i,j,k;while(~scanf("%d%d",&n,&m)){for(i=0;i<n+1;++i)for(j=0;j<m+1;++j)scanf("%d",&dp[i][j]);for(i=0;i<n;++i)a[i]='a'+i;a[n]=b[m]='\0';Mem0(vis_b);for(i=1;i<=n;++i)for(j=1;j<=m;++j)if(dp[i][j]==dp[i-1][j-1]+1 && dp[i][j]!=Max(dp[i-1][j],dp[i][j-1])){if(!vis_b[j]){b[j-1]=a[i-1];vis_b[j]=1;}else{for(k=0;k<m;++k)if(b[k]==a[i-1])b[k]=b[j-1];for(k=0;k<n;++k)if(a[k]==a[i-1] && k!=i-1)a[k]=b[j-1];a[i-1]=b[j-1];}}bool flag[26];Mem0(flag);for(i=0;i<n;++i)flag[a[i]-'a']=1;int tmp;for(i=0;i<26;++i)if(!flag[i]){tmp=i;break;}//cout<<"tmp="<<tmp<<endl;for(i=1;i<=m;++i)if(!vis_b[i])b[i-1]='a'+tmp;printf("%s\n%s\n",a,b);}
}

Gym 100989D

题意:食堂从门口到里面按顺序摆了n张桌子,从1标号到n,分别可坐ai个人。q次操作,in x代表进来x人,他们要坐同一张桌子,工作人员会把他们带到他们能坐下的椅子最少的桌子,如果没有他们能坐的桌子他们就不在食堂吃了;out x代表x号桌的人走了。(比赛时题意理解错了,这题其实是道大水题,不用set也很简单,我用来熟悉set的操作)

思路:用set<pair<int,int>>维护,set中先按first,再按second有序。lower_bound查找按set定义的大小。

/*************************************************************************File Name: D.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 11时59分19秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=1e5+10;
int a[N];
set<pair<int,int>> table;
set<pair<int,int>>::iterator it;int main(){int n,q,i,x,pos;char op[5];while(~scanf("%d%d",&n,&q)){for(i=1;i<=n;++i){scanf("%d",a+i);table.insert({a[i],i});}while(q--){scanf("%s%d",op,&x);if(op[0]=='i'){it=table.lower_bound({x,0});if(it!=table.end()){printf("%d\n",it->second);table.erase(it);}else puts("-1");}else table.insert({a[x],x});}}
}

Gym 100989E

题意:给定a,b两个字符串,问a,b是否一致,若b长度>=8,则b可以有一个字符与a不一样或比a少一个。

思路:注意读题,多一个字符是不被允许的

/*************************************************************************File Name: E.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 12时12分48秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=110;
char s1[N],s2[N];int main(){int len1,len2,i;while(~scanf("%s%s",s1,s2)){len1=strlen(s1),len2=strlen(s2);if(len1==len2){int cnt=0;for(i=0;i<len1;++i)if(s1[i]!=s2[i])cnt++;if(cnt==0 || (cnt==1 && len1>=8))puts("yes");else puts("no");}else if(len1-len2==1 && len1>=8){bool flag=1;for(i=0;i<len2;++i)if(s1[i]!=s2[i])break;for(;i<len2;++i)if(s1[i+1]!=s2[i])flag=0;if(flag)puts("yes");else puts("no");}else puts("no");}
}

Gym 100989F

题意

/*************************************************************************File Name: F.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 12时30分42秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=1e5+10;
int cnt[N],pos[N];int main(){int n,m,q,i,x,p;while(~scanf("%d%d%d",&n,&m,&q)){Mem0(cnt);int ans=0;for(i=1;i<=n;++i){scanf("%d",&pos[i]);if(!cnt[pos[i]])ans++;cnt[pos[i]]++;}//cout<<"ans="<<ans<<endl;while(q--){scanf("%d%d",&x,&p);cnt[pos[x]]--;if(!cnt[pos[x]])ans--;if(!cnt[p])ans++;cnt[p]++;pos[x]=p;printf("%d\n",m-ans);}}
}

Gym 100989G

题意

思路:二分。

/*************************************************************************File Name: G.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 16时12分08秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=1e5+10;
ll a[N];int main(){ll k,av,sum,sav,maxn;int i,m;ios::sync_with_stdio(0);while(cin>>m>>k){sum=maxn=0;for(i=0;i<m;++i){cin>>a[i];//cout<<"a["<<i<<"]="<<a[i]<<endl;sum+=a[i];maxn=Max(maxn,a[i]);}av=(sum+m-1)/m;ll low=av,high=maxn,mid,ans;while(low<=high){mid=(low+high)>>1;//cout<<"low="<<low<<" high="<<high<<" mid="<<mid<<endl;sav=0;for(i=0;i<m;++i){if(a[i]>mid)sav+=a[i]-mid;}//cout<<"sav="<<sav<<" k="<<k<<endl;if(sav<=k)ans=mid,high=mid-1;else low=mid+1;}cout<<ans<<endl;}
}

Gym 100989H

题意:又是找零问题。面额有1,5,10,20,50。初始没钱,问能否在不改变队伍顺序的情况下成功找零。

思路:思路很暴力,代码也很暴力

/*************************************************************************File Name: H.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 12时43分58秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;int main(){int n,k,cnt1,cnt5,cnt10,cnt20,cnt50;int x1,x5,x10,x20,x50,charge;while(~scanf("%d",&n)){cnt1=cnt5=cnt10=cnt20=cnt50=0;bool flag=1;for(int i=0;i<n;++i){scanf("%d%d%d%d%d%d",&k,&x1,&x5,&x10,&x20,&x50);cnt1+=x1,cnt5+=x5,cnt10+=x10;cnt20+=x20,cnt50+=x50;charge=x1*1+x5*5+x10*10+x20*20+x50*50-k;while(charge>=50 && cnt50)charge-=50,cnt50--;while(charge>=20 && cnt20)charge-=20,cnt20--;while(charge>=10 && cnt10)charge-=10,cnt10--;while(charge>=5 && cnt5)charge-=5,cnt5--;while(charge>=1 && cnt1)charge--,cnt1--;if(charge)flag=0;}if(flag)puts("yes");else puts("no");}
}

Gym 100989I

Gym 100989J

题意

思路

/*************************************************************************File Name: J.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 12时57分04秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=110;
int k[N],mp[N][N],n;
char op[N][2];void Print(int ch,int d){int i;for(i=0;i<d;++i)printf("  ");if(k[ch])printf("%s ",op[ch]);else printf("  ");if(ch)printf("object%d\n",ch);else puts("project");if(op[ch][0]=='-'){for(i=0;i<k[ch];++i)Print(mp[ch][i],d+1);}
}int main(){int i,j;while(~scanf("%d",&n)){for(i=0;i<=n;++i){scanf("%s%d",op[i],&k[i]);for(j=0;j<k[i];++j)scanf("%d",&mp[i][j]);}Print(0,0);}
}

Gym 100989K

Gym 100989L

题意

思路:暴搜即可

/*************************************************************************File Name: L.cppID: obsoles1PROG: LANG: C++ Mail: 384099319@qq.com Created Time: 2016年07月18日 星期一 13时49分22秒************************************************************************/
#include<bits/stdc++.h>
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();++it)
#define Abs(x,y) ((x)>(y)?((x)-(y)):((y)-(x)))
#define ll long long
#define Mem0(x) memset(x,0,sizeof(x))
#define Mem1(x) memset(x,-1,sizeof(x))
#define MemX(x) memset(x,0x3f,sizeof(x))
#define pb push_back
using namespace std;
const int N=30;
int a[N];
struct node{int x,step,i;
}s,t;int main(){int n,i,j,sum,sum2;char op[2];while(~scanf("%d",&n)){//cout<<"n="<<n<<endl;scanf("%d",a);sum=sum2=a[0];for(i=1;i<n;++i){scanf("%s%d",op,a+i);sum2+=a[i];if(op[0]=='-')a[i]=-a[i];sum+=a[i];}queue<node> q;s.x=a[0],s.step=0,s.i=1;q.push(s);int ans=N;while(!q.empty()){s=q.front();q.pop();//cout<<"s.x="<<s.x<<" i="<<i<<endl;if(s.x==0 && s.i==n)ans=Min(ans,s.step);if(s.i<=n){t=s;t.x+=a[t.i++];q.push(t);t=s;t.x-=a[t.i++],t.step++;q.push(t);}}if(ans==N)puts("-1");else printf("%d\n",ans);}
}

Gym 100989M

Gym 100989N

2016 PSUT Coding Marathon(gym100989)相关推荐

  1. 在VM虚拟机Windows Server r2上部署安装Microsoft Dynamics CRM 2016 步骤详解(一)

    应公司需求,最近在学微软的Dynamics CRM.在搭建环境的过程中也遇到了一些雷坑,在这里分享一下安装部署过程当中所遇到的一些问题, 安装Microsoft Dynamics CRM 2016的几 ...

  2. 2016全球数据新闻奖(DJA)颁布, 12个获奖作品全剖析

    就在一天前,2016数据新闻奖(DataJournalism Awards, DJA)在全球编辑网络(Global Editors Network)年度峰会上隆重揭晓! 数据新闻奖由跨平台媒体社区全球 ...

  3. 2016年下半年总结(连载)!

    2016年下半年总结(连载!) ①   10月总结 夜深人静的时候.一个的时候总喜欢多想.    这一个月真是过得快啊,不免又说起了老套而又真实的话.此刻:2016/10/29/23:34.    开 ...

  4. 渣基础:比照Hawstein学Cracking the coding interview(1)

    <C++ Primer 第五版>书实在是太长,太厚了.总是看了十几页就看累了,坚持不了多久,想了想还是别勉强自己,决定把它当工具书查看,或者积累足够的C++经验后再翻阅一遍. 目前的打算是 ...

  5. 论文阅读《Representation learning with contrastive predictive coding 》(CPC)对比预测编码

    论文地址:Representation Learning with Contrastive Predictive Coding 目录 一.Background(背景) 二.Motivation and ...

  6. SFDC 微服务实践之路 2016.12.10 杭州(整理)--转

    原文地址:http://mp.weixin.qq.com/s/8cC4Ewt6yPjnxdYxuNZlFQ 微服务是什么? 微服务是一种细粒度(Fine-Grain)的SOA 或许在座的高朋了解过其概 ...

  7. 2016 Unicode Conference拾遗(一)

    在刚结束的2016Unicode Conference上,来自Google的Kat Momoi先生分享了他的topic--Releasecriteria and mobile i18n testing ...

  8. 阿里巴巴2016 实习生招聘练习题(二)

    1.阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次.类似的数字还有:1861,1668等.这样的数字一共有()个. 答案:43 ...

  9. leetcode585. 2016年的投资(SQL)

    写一个查询语句,将 2016 年 (TIV_2016) 所有成功投资的金额加起来,保留 2 位小数. 对于一个投保人,他在 2016 年成功投资的条件是: 他在 2015 年的投保额 (TIV_201 ...

最新文章

  1. SAP QM初阶之检验批系统状态中的CTCM该如何消除?
  2. 该怎样才能将PDF转换成HTML
  3. Py之cairocffi:cairocffi的简介、安装、使用方法之详细攻略
  4. vlan间ACL和VACL的区别
  5. Insider Dev Tour 2019 全球巡演 苏州站
  6. no crontab for root 问题解决方法
  7. 【Flink】Flink 源码之OperatorChain
  8. MyEclipse配置TomCat环境(图文详解)
  9. 机器人机构学基础(朱大昌)第二章部分习题答案
  10. Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名
  11. 【深度】美俄机器人集群军事作战应用研究现状!三大关键技术体系分析
  12. PHPExcel出现 Formula Error的解决方案
  13. chrome导入\导出登录密码
  14. 淘宝 模拟 登录 总结 【QQ 346767073 】
  15. 卸载k8s和docker
  16. Android GLSurfaceView详解
  17. 【已解决】Error: `brew cask` is no longer a `brew` command. Use `brew <command> --cask` instead.
  18. php实现自动计算器,PHP实现简易计算器功能
  19. 树莓派魔镜——树莓派无显示器安装系统并连接vnc
  20. oracle视图分页查询,视图以及oracle分页,练习

热门文章

  1. ml-agents项目实践(一)
  2. 和家亲平台——4G智能设备接入Andlink协议
  3. 趣味数学:赚了多少和两只火鸡
  4. ai钢笔工具怎么描线_AI钢笔如何绘制生动轮廓线(在AI软件中,如何用钢笔工具绘制出有生动轮廓线的图形?)...
  5. 2021年登高架设新版试题及登高架设考试平台
  6. STM32 Systick实现us和ms定时的两种方式
  7. 资产重大变更未发现,安全负责人需要担责吗?
  8. SIMcom嵌入式Linux平台通用配置
  9. mysql_upgrade 升级_MySQL 8.0.16 告别mysql_upgrade升级方式
  10. 增大肌肉块-14大金律