上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: 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 阅读(151) 评论(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 阅读(134) 评论(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 阅读(162) 评论(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 阅读(162) 评论(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 阅读(206) 评论(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 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 不是自己写的代码,但是帮忙d了挺久... 很直观的想法,如果把起点,终点,和所有的墙的边界点看作点的话,最终的最短路径一定只经过这些点,把图建出来,跑一边最短路即可。 阅读全文
posted @ 2019-04-17 14:32 IAT14 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目中认为如果两段对应位音调变动幅度相同,则两端相似。求最长的不相交,且至少相隔1格,的相似段落的长度。那么我们考虑对原序列,求出两位之前的差。这样子问题就转化成了,求两端相同的最长且不相交,且至少相隔1个,的子序列了,是经典的后缀数组问题。 我们考虑先二分答案长度k,把问题转化为判断性问题。 然后 阅读全文
posted @ 2019-04-13 16:39 IAT14 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 我们先考虑只有一个窗口的情况。如果只有一个窗口,显然我们应该按照吃饭的时间进行排序,按这个顺序先后打饭吃饭即可。因为窗口打饭时间的和是一定的,我们越让吃饭快的人靠后,最后的结束时间就可能更早。 那么对于两个窗口,我们依旧将人按照吃饭快慢排序。现在得到了一个序列,我们考虑序列DP。用f[i][t]表示 阅读全文
posted @ 2019-04-12 18:01 IAT14 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 每一行是独立的,分开处理即可。 dp[i][j]表示[i,j]这一段,取完的最大收益。转移很显然,dp[i][j] = max(dp[i + 1][j] + 2^(m - (j - l)) * mp[t][i],dp[i][j - 1] + 2^(m - (j - l)) * mp[t][j]) 不 阅读全文
posted @ 2019-04-12 14:39 IAT14 阅读(143) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页