CDU集训代码:基础算法和数据结构2
生活随笔
收集整理的這篇文章主要介紹了
CDU集训代码:基础算法和数据结构2
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
做題地址:
http://acm.hdu.edu.cn/diy/contest_login.php?cid=16636
?
Problem A: HDU1040
排序題,可以直接使用c++提供的排序,如果是JAVA,也可以使用自帶的排序方法。C語言需要自己寫排序算法。
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int sequence[1005]; int t,n; int main() {while(scanf("%d",&t)==1){while(t--){scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&sequence[i]);sort(sequence,sequence+n);cout<<sequence[0];for(int i=1;i<n;i++)cout<<" "<<sequence[i];cout<<endl;}} }?
?
Problem B: HDU1021
遞推
#include <iostream> using namespace std; int main() {int n;while(cin >> n){if(n % 4 == 2)cout << "yes/n";elsecout << "no/n";}return 0; }?
Problem C: HDU2010
絕對值排序
#include<stdio.h> #include<math.h> int main() {int n, i, j, a[100], temp;while(scanf("%d",&n)&&n!=0){for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(abs(a[i])<abs(a[j])){temp=a[i];a[i]=a[j];a[j]=temp;}for(i=0;i<n-1;i++)printf("%d ",a[i]);printf("%d/n",a[i]);}return 1; }?
?
Problem D: HDU2010
素數(shù)判定
#include<stdio.h> #include<math.h> int fun(int n){int f=1,i,m;m=n*n+n+41;for(i=2;i<=sqrt(m);i++){if(m%i==0){f=0;break;}}return f;}main(){int a,b,j;while(scanf("%d%d",&a,&b)==2,a||b){{int c,d,k;c=a>b?a:b;d=a<b?a:b;for(j=d;j<=c;j++){k=fun(j);if(k==0)break;}printf(k?"OK\n":"Sorry\n");}}}?
?
Problem E: HDU 2037
簡單貪心,不斷地選取在一段時間內(nèi)最先結束的節(jié)目,直到一天結束。所以對結束時間排序后,直接選擇沒有重疊的節(jié)目即可。
#include<stdio.h> #include<stdlib.h> struct T {int ti_s;int ti_e; }time[100]; int cmp(const void *a,const void *b) {return (*(T *)a).ti_e-(*(T *)b).ti_e; } int main() {int n,i,max,sum,bet;while(scanf("%d",&n),n){max=24;sum=0;for(i=0;i<n;i++) {scanf("%d%d",&time[i].ti_s,&time[i].ti_e);}qsort(time,n,sizeof(time[0]),cmp);if(time[0].ti_e<=max){bet=time[0].ti_e;sum++;max-=(time[0].ti_e-time[0].ti_s); }for(i=0;max>=0&&i<n;i++){if(bet<=time[i].ti_s){bet=time[i].ti_e;sum++;max-=(time[i].ti_e-time[i].ti_s);} }printf("%d\n",sum);}return 0; }?
?
Problem F: hdu 2014
水題,求平均值
#include <stdio.h> int main() {int n, i;float tmp,ans,max,min;while(scanf("%d",&n) != EOF){scanf("%f", &max);min = ans = max;for(i=1; i<n; i++){scanf("%f", &tmp);ans += tmp;if(max < tmp)max = tmp;if(min > tmp)min = tmp;}ans = (ans-max-min)/(n-2);printf("%.2f\n", ans);}return 0; }?
?
?
?
Problem G:hdu 1008
簡單坐電梯
#include<stdio.h> int main() {int n,t,rt;while(scanf("%d",&n),n){int i=0,sum=0;rt=0;while(i<n){scanf("%d",&t);if(t>rt){sum+=(t-rt)*6+5;}else if(t<rt){sum+=(rt-t)*4+5;} else if(t==rt){sum+=5;}rt=t;i++;}printf("%d\n",sum);}return 0; }?
Problem H:hdu 1076
潤年計算問題
#include <iostream> using namespace std;int main() {int t,y,n;cin>>t;while(t--){cin>>y>>n;for(int i=0;i<n;){if(y%4==0&&y%100!=0||y%400==0)i++;y++;}cout<<y-1<<endl;}return 1;}?
?
轉(zhuǎn)載于:https://www.cnblogs.com/cdu-acm/archive/2012/08/12/2635352.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的CDU集训代码:基础算法和数据结构2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea-spark-sbt 打包jar
- 下一篇: openwrt编译qca驱动不成功。gc