标签:csu1628 server csu 1629 eligibility csu 1631 facility lo csu1633 landline tel csu1636 i locked tre
A:简单题
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<queue> #include<algorithm> using namespace std; int a[105]; int main() { #ifndef ONLINE_JUDGE freopen("in.cpp","r",stdin); #endif // ONLINE_JUDGE int n,cnt; while(cin>>n>>cnt) { int sum=0; int i; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { sum+=a[i]; if(sum>cnt) break; } cout<<i-1<<endl; } return 0; } /************************************************************** Language: C++ Result: Accepted Time:0 ms Memory:1484 kb ****************************************************************/
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<queue> #include<algorithm> using namespace std; int Y1,M1,D1,Y2,M2,D2; int sum; string str; int IsY1() { if(Y1>=2010) return 1; return 0; } int IsY2() { if(Y2>=1991) return 1; return 0; } int Issum() { if(sum>=41) return 1; return 0; } int main() { #ifndef ONLINE_JUDGE freopen("in.cpp","r",stdin); #endif // ONLINE_JUDGE int t; cin>>t; while(t--) { cin>>str; cout<<str<<" "; scanf("%d/%d/%d",&Y1,&M1,&D1); scanf("%d/%d/%d",&Y2,&M2,&D2); scanf("%d",&sum); int cn=0; if(IsY1()||IsY2()) puts("eligible"); else if(Issum()) puts("ineligible"); else puts("coach petitions"); } return 0; } /************************************************************** Language: C++ Result: Accepted Time:24 ms Memory:1484 kb ****************************************************************/
只要知道有没有那么多的机子,还有某台设备有没有花费为0的时候就可以了!
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<queue> #include<vector> #include<algorithm> #define pi 3.1415926 #define ep 1e-8 #define MOD 1000000007 using namespace std; //long long C[maxn]; int A[105][105]; int vis[105]; int main() { int k,n,m; while(~scanf("%d%d%d",&m,&n,&k)) { memset(vis,0,sizeof(vis)); int cnt=0; for(int i=0; i<m; i++) for(int j=0; j<n; j++) scanf("%d",&A[i][j]); int flag; int ff=0; for(int i=0; i<m; i++) { flag=0; for(int j=0; j<n; j++) { if(A[i][j]==0&&(!vis[j])) { flag=1; cnt++; vis[j]++; } } if(flag) { ff++;flag=0;} } if(cnt>=n&&ff<=k) puts("yes"); else puts("no"); } return 0; } /************************************************************** Language: C++ Result: Accepted Time:0 ms Memory:1528 kb ****************************************************************/
题目意思比较好懂,但是一直到比赛结束都没找到错误,后来看了下这位牛的报告,才知道错哪里http://blog.csdn.net/u010372095/article/details/45954371!
AC代码:
#include<stdio.h> #include<string.h> const int N = 1005; const int INF = 1<<28; int val[N][N],n,vis[N],p; int prime(){ int s[N],dis[N],mint,m,tm,k=0,sum=0; for(int i=1; i<=n; i++){ s[i]=0; dis[i]=INF; if(vis[i]==0) m=i,k=1; } if(k==0) return 0; dis[m]=0; s[m]=1; tm=m; while(k<n-p){ mint=INF; for(int i=1; i<=n; i++) if(!s[i]&&vis[i]==0){ if(dis[i]>val[m][i]) dis[i]=val[m][i]; if(mint>dis[i]) mint=dis[i],tm=i; } if(mint==INF)return -1; m=tm; s[m]=1; sum+=mint; k++; } return sum; } int main(){ int m,a,b,c,aa[N]; while(scanf("%d%d%d",&n,&m,&p)>0){ for(int i=1; i<=n; i++){ vis[i]=0; for(int j=1; j<=n;j++) val[i][j]=INF; } for(int i=1; i<=p; i++){ scanf("%d",&a); vis[a]=1; aa[i]=a; } while(m--){ scanf("%d%d%d",&a,&b,&c); if(c<val[a][b]) val[a][b]=val[b][a]=c; } int sum=prime(); if(sum==-1) printf("impossible\n"); else{ if(n-p==0) { if(p==1)printf("0\n"); else if(p==2){ a=aa[1]; b=aa[2]; if(val[a][b]==INF) printf("impossible\n"); else printf("%d\n",val[a][b]); } else printf("impossible\n"); continue; } int i,j,mint; for(i=1; i<=p; i++){ a=aa[i]; mint=INF; for(j=1;j<=n;j++) if(val[a][j]<mint&&vis[j]==0) mint=val[a][j]; if(mint==INF) break; sum+=mint; } if(i<=p) printf("impossible\n"); else printf("%d\n",sum); } } return 0; }
思路:直接组合
AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<queue> #include<vector> #include<algorithm> #define pi 3.1415926 #define ep 1e-8 #define MOD 1000000007 using namespace std; string str; const int maxn=1000005; long long C[maxn]; int main() { #ifndef ONLINE_JUDGE freopen("in.cpp","r",stdin); #endif // ONLINE_JUDGE int t,n,m; cin>>t; int Cas=0; while(t--) { long long cnt=1; int n; scanf("%d%d",&n,&m); C[0]=1; for(int i=1;i<=n;i++) C[i]=(C[i-1]*(n-i+1)/i); printf("%lld\n",C[m-1]); } return 0; } /************************************************************** Problem: 1636 User: SkyHawk Language: C++ Result: Accepted Time:0 ms Memory:9296 kb ****************************************************************/
AC代码:
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cstdlib> #include <cmath> #define maxn 505 #define maxm 10005 #define eps 1e-12 #define mod 998244353 #define INF 0x3f3f3f3f typedef long long LL; typedef unsigned long long ULL; using namespace std; struct Fra { LL e, d; Fra(LL e = 0, LL d = 0) : e(e), d(d) {} void inv() { swap(e, d); if(d < 0) e = -e, d = -d; } void to() { LL g = __gcd(e, d); e /= g, d /= g; if(d < 0) e = -e, d = -d; } Fra operator + (const Fra& b) const { Fra res = Fra(e * b.d + b.e * d, d * b.d); res.to(); return res; } Fra operator - (const Fra& b) const { Fra res = Fra(e * b.d - b.e * d, d * b.d); res.to(); return res; } Fra operator * (const Fra& b) const { Fra res = Fra(e * b.e, d * b.d); res.to(); return res; } Fra operator / (const Fra& b) const { Fra res = Fra(e * b.d, d * b.e); res.to(); return res; } }r1, r2; LL a[maxn]; int n1, n2; void solve(Fra x) { int flag = 0; if(x.e == 0) printf("0"); while(x.d && x.e) { LL t = x.e / x.d; if(x.e < 0 && x.e % x.d) t--; if(flag == 0) flag = 1, printf("%lld", t); else printf(" %lld", t); x.e -= x.d * t; x.to(); x.inv(); } printf("\n"); } void work() { for(int i = 1; i <= n1; i++) scanf("%lld", &a[i]); r1 = Fra(a[n1], 1LL); for(int i = n1-1; i >= 1; i--) { r1.inv(); r1 = r1 + Fra(a[i], 1LL); } for(int i = 1; i <= n2; i++) scanf("%lld", &a[i]); r2 = Fra(a[n2], 1LL); for(int i = n2-1; i >= 1; i--) { r2.inv(); r2 = r2 + Fra(a[i], 1LL); } solve(r1 + r2); solve(r1 - r2); solve(r1 * r2); solve(r1 / r2); } int main() { while(scanf("%d%d", &n1, &n2)!=EOF) { work(); } return 0; } /************************************************************** Language: C++ Result: Accepted Time:0 ms Memory:1492 kb ****************************************************************/
湖南多校对抗赛(2015.05.24)部分解题报告(CSU1628-1638)
标签:csu1628 server csu 1629 eligibility csu 1631 facility lo csu1633 landline tel csu1636 i locked tre
原文地址:http://blog.csdn.net/u012313382/article/details/45967019