CQUPT WEEKLY TRAINING (3)解题报告
2014-10-26 11:38
381 查看
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"); } }
相关文章推荐
- CQUPT WEEKLY TRAINING (5)DIV2 解题报告
- CQUPT WEEKLY TRAINING (2)DIV2 解题报告
- CQUPT WEEKLY TRAINING (6)DIV2 解题报告
- CQUPT WEEKLY TRAINING (1)解题报告
- CQUPT WEEKLY TRAINING (4)DIV2 解题报告
- Mango Weekly Training Round #6 解题报告
- hdu 5823 2016 Multi-University Training Contest 8 color II 解题报告
- hdu 5828 2016 Multi-University Training Contest 8 Rikka with Sequence 解题报告
- 2014 Multi-University Training Contest 1--by FZU 解题报告
- ZZULI-Summer Training Contest(Seven)解题报告
- hdu5752 2016 Multi-University Training Contest 3 Sqrt Bo 解题报告
- hdu5754 2016 Multi-University Training Contest 3 Life Winner Bo 解题报告
- 2013.7.14 acm_schooltraining 解题报告
- 2010 ACM-ICPC Multi-University Training Contest(2)——Host by BUPT 解题报告[部分]
- 2013 Multi-University Training Contest 4 解题报告(更新中)
- 2013 Multi-University Training Contest 7 解题报告(更新中)
- 2014 Multi-University Training Contest 2 1011 ZCC Loves Codefires 解题报告
- 2013 Multi-University Training Contest 3 解题报告(更新中)
- 2016 Multi-University Training Contest 3----解题报告
- 2013年多校联合第四场(2013 Multi-University Training Contest 4)解题报告