CQUPT WEEKLY TRAINING (3)解题报告
来源:互联网 发布:淘宝店铺价格怎么设置 编辑:程序博客网 时间:2024/05/17 23:09
T1:
一些士兵围成圈,每个士兵有个高度。求一个最小的相离高度差。
循环维护一遍,然后判断一下头尾。
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>using namespace std;int a[1005];int main(){ int n; while(scanf("%d",&n)!=EOF) { int x,y; int mi=1000000; memset(a,0,sizeof(a)); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } for(int i=0;i<n-1;i++) { if(abs(a[i]-a[i+1])<mi) { x=i+1; y=i+2; mi=abs(a[i]-a[i+1]); } } //printf("%d\n",a[n-1]-a[0]); if(abs(a[n-1]-a[0])<mi) { x=n; y=1; } //printf("%d\n",mi); printf("%d %d\n",x,y); }}
T2:
一堆电视,对应有价值。负值代表你还能赚钱,求最多能得到多少钱。
排序,然后就没有然后了
#include <algorithm>#include <iostream>#include <cstdio>#include <vector>#include <string>#include <queue>#include <stack>#include <set>#include <map>using namespace std;int main(){ int n,m; cin >> n >> m ; vector <int> seq(n); for(int i=0 ; i<n ; i++) cin >> seq[i]; sort(seq.begin(),seq.end()); int sum=0; for(int i=0 ; i<n && i<m ; i++) { if(seq[i]>0)break; sum+=seq[i]; } cout << abs(sum) << endl; return 0;}
T3:
这道题题意读了好久。。。sad。。。。
把需要打印的页数读入,如果已经出现则无视之,然后排序,输出连续的区间,区间长度大于1的,输出i-j,否则输出i。。
#include <cstdio>#include <vector>using namespace std;const int Maxm = 1005;int n;bool was[Maxm];vector <int> a, b;int main(){ int num; while (scanf("%d,", &num) == 1) { was[num]++; } for (int i = 0; i < Maxm; i++) if (was[i]) if (!b.empty() && b.back() == i - 1) b.back() = i; else { a.push_back(i); b.push_back(i); } for (int i = 0; i < a.size(); i++) { if (a[i] == b[i]) printf("%d", a[i]); else printf("%d-%d", a[i], b[i]); printf("%s", i + 1 < a.size()? ",": "\n"); } return 0;}
T4:
大水题。判断是不是偶数就可以了,注意2不行。
#include <algorithm>#include <iostream>#include <cstdio>#include <vector>#include <string>#include <queue>#include <stack>#include <set>#include <map>using namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n==2) { printf("NO\n"); continue; } if(n%2==0) { printf("YES\n"); continue; }else { printf("NO\n"); continue; } }}
T5:
在l到r的范围内找三个数,a,b,c 。 a和b互质,b和c互质,但a和c不是互质。
因为r-l<=50。所以直接暴力枚举三个数就行了。
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>using namespace std;long long gcd(long long n,long long m){ return m==0?n:gcd(m,n%m);}int main(){ int flag; long long i,j,k,l,r; while(cin>>l>>r) { flag=1; if(r-l<2) { printf("-1\n"); continue; } for(i=l;i<r-1&&flag;i++) { for(j=i+1;j<r&&flag;j++) { for(k=j+1;k<r+1&&flag;k++) { if(gcd(i,j)==1&&gcd(j,k)==1&&gcd(i,k)>1) { cout<<i<<" "<<j<<" "<<k<<endl; flag=0; } } } } if(flag) printf("-1\n"); }}
T6:
构造。 1,n,2,n-1,3,n-2这个样子。k/2就是需要交换的元素对数,还需要考虑一下k的奇偶去判断没交换的元素是顺序输出还是逆序输出。自己尝试下几个数据就明白了。
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>using namespace std;typedef long long LL;int p[100005];int main(){ int n,k; while(cin>>n>>k) { for(int i=0; i<n; i++) { p[i]=i+1; } int flag=0; int temp=n-1; int m=k/2; int x=k; while(m--) { printf("%d ",p[flag]); printf("%d ",p[temp]); flag++; temp--; } if(x%2==0) { for(int i=temp; i>=flag; i--) { printf("%d ",p[i]); } } if(x%2==1) { for(int i=flag; i<=temp; i++) { printf("%d ",p[i]); } } printf("\n"); }}
0 0
- CQUPT WEEKLY TRAINING (3)解题报告
- CQUPT WEEKLY TRAINING (1)解题报告
- CQUPT WEEKLY TRAINING (2)DIV2 解题报告
- CQUPT WEEKLY TRAINING (4)DIV2 解题报告
- CQUPT WEEKLY TRAINING (5)DIV2 解题报告
- CQUPT WEEKLY TRAINING (6)DIV2 解题报告
- CQUPT WEEKLY TRAINING (7)DIV2 解题报告
- Mango Weekly Training Round #3 解题报告
- Mango Weekly Training Round #6 解题报告
- 2015 CQUPT WEEKLY TRAINING (1)题解和专题内容推荐
- LeetCode Weekly Contest 56 解题报告
- 2015 Multi-University Training Contest 3 解题报告
- 2016 Multi-University Training Contest 3----解题报告
- 2016 Multi-University Training Contest 3 解题报告
- 【解题报告】2016 Multi-University Training Contest 3
- HIT summer training Contest 11 / 解题报告
- UESTC Summer Training #25解题报告
- 2014 Multi-University Training Contest 解题报告
- 走技术线路的研究生如何发表论文?
- webApp前端开发技巧总结
- 关于template 的23个问题
- c++ 模拟 delegate
- IOS-UITableView编辑模式
- CQUPT WEEKLY TRAINING (3)解题报告
- DedeCMS5.7首页会员横排登录代码
- 自定义View在Android2.x上的坑
- CSDN专家博客手机客户端分享使用
- mysql命令窗口打开一闪而过
- C语言实现的lisp解析器介绍
- 用window.onerror捕获并上报Js错误
- ubuntu14.04.1LTS安装NVIDIA Quadro NVS 135M等显卡驱动
- 织梦CMS游客不能匿名软件投稿的解决方法