2015年12月25日

摘要: 模拟,给我爆!#include#include#include#includeusing namespace std;char s[105];int n;int main(){ scanf("%s",s); scanf("%d",&n); int l=strlen(s); if (n==0) pri... 阅读全文

posted @ 2015-12-25 17:18 ziliuziliu 阅读(175) 评论(0) 推荐(0) 编辑

2015年12月21日

摘要: 拓扑排序和机智的判环判合法。如果每次入队的点大于1个即为有多个拓扑序。如果该次没有点入队就是环。没时间写代码了,粘的题解。#include#includeint map[27][27],indegree[27],q[27];int TopoSort(int n){ int c=0,temp[2... 阅读全文

posted @ 2015-12-21 23:02 ziliuziliu 阅读(141) 评论(0) 推荐(0) 编辑

2015年12月20日

摘要: 2013NOIP普及组压轴题。其实只要想到这个车子没停的站肯定比停的站级别低,拓扑排序,在节点入队时dis[e[i].v]=dis[head]+1维护最长路即可。但要注意此题含有大量重边,若不判重可能会tle掉。#include#include#include#include#include#def... 阅读全文

posted @ 2015-12-20 19:28 ziliuziliu 阅读(172) 评论(0) 推荐(0) 编辑

摘要: 拓扑排序之即可。面对重边:新加vis数组。求不能确定的顺序:cnt,每次入队-1即可。#include#include#include#include#define maxv 10005#define maxe 25005using namespace std;int n,m,g[maxv],inq... 阅读全文

posted @ 2015-12-20 17:57 ziliuziliu 阅读(245) 评论(0) 推荐(0) 编辑

摘要: 题目大意:求一条方差最小的路径,给定起点和中点。 我们先考虑方差的计算公式,可以知道:方差与路径平方和,路径长度,路径段数有关。 由于看起来数据范围较小,我们考虑dp[i=(第几个点)][j=(经过几条边)][k=(边权和)]=该限制下的路径最小平方和。 怎么实现这个dp?拓扑排序套枚举j,k刚好。 阅读全文

posted @ 2015-12-20 17:12 ziliuziliu 阅读(584) 评论(0) 推荐(0) 编辑

2015年12月17日

摘要: 这个的题意是绕一圈使得圈上所有点到原来的点的距离都大于等于l。求最短周长。平移一下,几何乱搞?发现这个弧线刚好是个圆。convexhull。。这个我抄的版也不知道是什么算法但是好像靠谱。研究凸包的一个算法。#include#include#include#includeusing namespace... 阅读全文

posted @ 2015-12-17 23:32 ziliuziliu 阅读(118) 评论(0) 推荐(0) 编辑

2015年12月15日

摘要: 这个妥妥的最小割,但是我想了好久。。。。考虑所有羊连源点,狼连汇点,相邻点两边跑最小割(最大流)即可。正确性?考虑类似一个二分图的东西,我们只需要把狼集合和羊集合拦腰斩断即可。#include#include#include#include#define maxe 100005#define max... 阅读全文

posted @ 2015-12-15 23:23 ziliuziliu 阅读(170) 评论(0) 推荐(0) 编辑

2015年12月14日

摘要: 贪心可过。原来浙江省选也不是那么难嘛。。作者懒,粘的题解。此题类似于田忌赛马的策略,只要站在浙江队一方和站在对手一方进行考虑即可。#include#include#include#include#include#include#include#include#include#include#incl... 阅读全文

posted @ 2015-12-14 22:29 ziliuziliu 阅读(123) 评论(0) 推荐(0) 编辑

摘要: 又见神TM卡内存题。这道题是要求众数。怎么求呢?首先这道题要求众数的个数大于一半,因此我们读入一个,如果和rec不一样就cnt--。如果cntusing namespace std;int n,cnt,a,rec=0;int main(){ scanf("%d",&n); while (n) { ... 阅读全文

posted @ 2015-12-14 19:45 ziliuziliu 阅读(123) 评论(0) 推荐(0) 编辑

摘要: 其实打个表就会发现,这个玩意儿是积性的,然后很happy的搞了一下。不,不是这样。考虑每个约数对答案的贡献,不难发现:约数i的贡献为n/i。加之即可。#include#includeusing namespace std;int n,sum=0;int main(){ scanf("%d",&n);... 阅读全文

posted @ 2015-12-14 13:22 ziliuziliu 阅读(109) 评论(0) 推荐(0) 编辑