摘要: 1 //枚举最高高度,不断计算答案,并取min即可。记得初始值赋正无穷 2 #include 3 #include 4 using namespace std; 5 int n,tot,ans = 1000000000; 6 int h[1010]; 7 int sqr(int x) 8 { 9 return x * x; 10 } 11 int main() 1... 阅读全文
posted @ 2019-07-06 21:25 IAT14 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 看到木板最大数目,容易下意识想到二分。但是我们冷静思考下,这道题怎么样才能使总长度最短。 因为有些牛不在,所以有些牛棚是不需要覆盖木板的。如果能每个牛棚分单独一个木板,一定总长度是最小的。但是由于木板数量有限制,所以我们有时只能用一个比较长的木板的时候,顺便把没有牛的牛棚也覆盖了。就造成了浪费。所以 阅读全文
posted @ 2019-07-06 21:14 IAT14 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 1 //这道题让我想起来班主任的名言,你上课耽误1分钟,大家40个人,就耽误了大家40分钟。一样的道理,越靠前的人耽误的人越多,所以让快的人尽量靠前。 2 #include 3 #include 4 using namespace std; 5 struct dat 6 { 7 int id,tim; 8 friend bool operator < (da... 阅读全文
posted @ 2019-07-06 17:19 IAT14 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 1 //于其说是一道贪心题,不如说是一道考察结构体运用的题目。对于重载运算符一定要熟练运用。 我们优先购买便宜的牛奶即可,注意使用min函数节约代码量。 2 #include 3 #include 4 #include 5 using namespace std; 6 int n,m,ans; 7 struct node 8 { 9 int a,b;//牛奶单价和产量... 阅读全文
posted @ 2019-07-06 17:15 IAT14 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1 //没什么好说的,要注意的就是一定要边计算边取模,这道题不这么做也不会溢出,但是在NOIP中绝不会这么简单。一定记得随时取模。再一个就是这种输出字符串的,一定要从原文复制粘贴,注意细节。 2 #include 3 #include 4 using namespace std; 5 char s1[10],s2[10]; 6 int main() 7 { 8 ... 阅读全文
posted @ 2019-07-06 17:10 IAT14 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 1 //难点在于锁有容错性,左右相邻均可。并且这里题目规定了从1开始,所以不倾向与从0开始。这里写一个函数来单独用来判断相邻的问题,做题时,如果某个部分感到实现困难可以将其拆成不同部分,逐一击破。 2 #include 3 #include 4 using namespace std; 5 int n,res; 6 int pwd[3][4]; 7 bool cls(int ... 阅读全文
posted @ 2019-07-06 17:10 IAT14 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1 //因为每个桶的上限只有20,最多只有20*20*20个状态,我们用vis[x][y][z]表示一个状态是否被搜索过。然后每次尝试各种转移,发现答案就记录答案。 2 #include 3 #include 4 #include 5 using namespace std; 6 bool ans[30],vis[30][30][30]; 7 int a,b,c; 8 v... 阅读全文
posted @ 2019-07-06 17:08 IAT14 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1 //打出表可以看到,集合内有大约cnt=120000个数。做法是枚举等差数列前两个数,然后再用一个N去判断序列后面每一位是否存在。复杂度高达cnt^2*n,加了玄学优化可以过,应该不是正解。 2 #include 3 #include 4 #include 5 using namespace std; 6 vector vec; 7 int n,m; 8 int v... 阅读全文
posted @ 2019-07-06 17:05 IAT14 阅读(201) 评论(0) 推荐(0) 编辑