编辑: Cerise银子 | 2019-07-01 |
1 Table of Contents Introduction First Chapter 每日一题
2 My Awesome Book This file file serves as your book's preface, a great place to describe your book's content and ideas.
每天做一道编程题目,然后在这里进行记录. 每日一题
3 Introduction First Chapter GitBook allows you to organize your book into chapters, each chapter is stored in a separate file like this one. DAY
1 2015-11-01 题目地址: https://uva.onlinejudge.org/external/112/p11292.pdf 每日一题
4 First Chapter #include #include using namespace std;
const int maxn =
20000 + 5;
int A[maxn] ,B[maxn];
int main(){ int n,m;
while(scanf("%d%d",&n,&m) ==
2 && n && m){ for(int i = 0;
i < n ;
i++) scanf("%d",&A[i]);
for(int i = 0;
i < m;
i++) scanf("%d",&B[i]);
sort(A,A+n);
sort(B,B+m);
int cur = 0;
int cost = 0;
for(int i = 0;
i < m;
i++) if(B[i] >= A[cur]){ cost += B[i];
if(++cur == n) break;
if(cur < n) printf("Loowater is doomed!\n");
else printf("%d\n",cost);
} return 0;
} 解题思路: 把恶龙的直径放入数组中,然后对这个数组进行排序. 把骑士的能力 值放入数组中,然后对这个数组进行排序. 然后拿着骑士数组中的数依次和恶龙数 组中的数进行比较,如果大于,那么各自数组的下标都加1,否则,恶龙数组不 加,骑士数组加1. 每日一题
5 First Chapter DAY
2 2015年11月2日 题目地址: 突击战 每日一题
6 First Chapter #include #include #include using namespace std;
struct Job{ int j,b;
bool operator < (const Job& x) const { //onenote中c++笔记有记录重载 return j > x.j;
} };
int main(){ int n,b,j,kase = 1;
while(scanf("%d,&n") ==
1 && n){ vector v;
//想象成java中的arrayList,是动态添加的数组 for(int i = 0;
i < n;
i++){ scanf("%d%d",&b,&j);
v.push_back((Job){j,b});
sort(v.begin(),v.end());
int s = 0;
int ans = 0;
for(int i = 0;
i < n;
i++){ s += v[i].b;
ans = max(ans, s+v[i].j);
//for循环写的非常好 printf("Case %d: %d\n",kase++,ans);
} return 0;
} 解题思路:所有的任务的交代时间是必须有的,所以,要想尽可能早地完成任务, 就需要先执行执行时间比较长的任务.所以,搞一个任务结构体Job,然后按照执 行时间的长短,按照从大到小排序.挨着往出取交代任务的时间,然后完成任务的 时间是交代任务时间+执行任务时间. 每日一题
7 First Chapter DAY
3 2015年11月3日/* **x2表示2号给1号的金币数. **x2=x1-C1. C数组是构造出的. */ #include #include using namespace std;
const int maxn =
10000 + 10;
long long A [maxn], C[maxn], tot, M;
int main(){ int n;
while(scanf("%d",&n) == 1){ tot = 0;
for(int i = 1;
i