摘要: 思路: 维护两个堆 一个按时间 (从后到前)的 另一个是按价值(从大到小)的 从时间的堆向价值的堆倒 每回(合法状态下)取当前的堆顶 判一判//By SiriusRen#include #include #include using namespace std;long long... 阅读全文
posted @ 2016-10-27 23:45 SiriusRen 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 贪心好题 ………. 思路: 从大到小凑C 如果不够 再从小到大补满(超过)C//By SiriusRen#include #include #include using namespace std;int n,c,ans,flag,vis[21];struct Mone... 阅读全文
posted @ 2016-10-27 19:58 SiriusRen 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 思路: 抄的题解这叫搜索?难以理解我觉得就是枚举+逼近//By SiriusRen#include #include #include #include using namespace std;int n,recx,recy,x,y;int gcd(int a,int b){ ... 阅读全文
posted @ 2016-10-27 19:54 SiriusRen 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题意: 思路: 每回枚举去哪个山包 枚举的姿势很重要//By SiriusRen#include #include using namespace std;int n,k,a[1005],l,r,base,cnt,ans,minn,recl,recr,recbase;int m... 阅读全文
posted @ 2016-10-27 19:52 SiriusRen 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 思路: 预处理出在能力值为i的时候 滑雪一次的最小时间f[i][j]表示i时间 j的能力值 最多的滑雪次数我先用vector 把课程按起点push进去1.for(int k=0;k#include #include #include using namespace std;... 阅读全文
posted @ 2016-10-27 19:48 SiriusRen 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 思路: 跟昨天的考试题特别像…..就是裸的Kruskal 把边权设为连接的两个点的点权之和加上边权*2搞定//By SiriusRen#include #include #include using namespace std;int n,m,c[10005],f[10005]... 阅读全文
posted @ 2016-10-27 15:58 SiriusRen 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 思路: f[i][j]i表示集合的组成 j表示选最后一个数 f[i][j]表示能选的方案数 f[i|(1#include using namespace std;#define int unsigned long longint n,K,s[17],f[65535][17];... 阅读全文
posted @ 2016-10-27 15:43 SiriusRen 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意: 思路: 先预处理出所有格子的statement statement=1–>只有上边的格子被覆盖 statement=2–>只有下边的格子被覆盖 statement=3–>上下都被覆盖f[i][j][k]表示状态为i时,前j个地方的奶牛,盖k座房子 最少盖住的格子... 阅读全文
posted @ 2016-10-27 08:24 SiriusRen 阅读(180) 评论(0) 推荐(0) 编辑