Yesterday,Licheng No.2 Senior High,Jinan,one thing happened.The student who studies OI had an unforgettable experience----they were forced to finish the test that made by _rqy
好了,说人话。做完,我们初三1.1队的一众大佬们(当然除了我),顶着推荐生考试的压力,做了一套由_rqy命题的著名题组----桶哥的问题
当然,我还是玄学爆零(这就非常尴尬)
不过,GC大佬还是最强的——rank1
T1就不说了,唯一一点就是不要将本来并不是很难的题刻意复杂化,对于买桶这个题,我只想提示大家——不要用高精!!!
好了,接下来是T2——送桶的问题
•题目描述:桶哥卖完了桶,接下来就是送桶(虽然我并不知道Ta为什么不自己吃掉)。一共要送n个桶,第i个桶需要花费桶哥ai的时间,并且要求bi之前送达。但是桶哥比较懒,他想尽量晚的出发。下面给出n、ai和bi,求桶哥出发的最大时间。
•题目分析:对于这道题,我们不能正常的从前往后找了,需要将n个桶按照最晚送达时间从大到小排序,最后用最大顺序减去时所需时间再取一个最大值就可以了;
•AC代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<iomanip> #include<string> #include<algorithm> #include<cstdlib> using namespace std; const int maxn=1000001; int sum,minn=0x3f3f3f3f; inline int read() { int X=0,w=1; char c=getchar(); while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); } while (c>='0'&&c<='9') X=(X<<3)+(X<<1)+c-'0',c=getchar(); return X*w; } struct m { int x,y; }s[maxn]; int cmp(m a,m b) { return a.y<b.y; } int main() { int k; k=read(); for(int i=1;i<=k;i++) { s[i].x=read(); s[i].y=read(); } sort(s+1,s+1+k,cmp); for(int i=1;i<=k;i++) { sum+=s[i].x; if(s[i].y-sum<minn) { minn=s[i].y-sum; } } printf("%d",minn); return 0; }
T3真心不会,还是先刷会儿简单题压压惊吧。