uestc summer training #2】的更多相关文章

2015 UESTC Winter Training #10 Northeastern Europe 2009 最近集训都不在状态啊,嘛,上午一直在练车,比赛时也是刚吃过午饭,状态不好也难免,下次比赛提前吃饭休息一会儿吧.. 一开始卡在B题,后来发现是题意理解错了,没有看见above,就是不可以回到原点,WA了5发也是够可惜的. 顺利地过了G题之后,就卡在了C题上,要T成doge了T T. A - Asteroids 三维凸包,等看计算几何之后再写 B - Business Center 有一座…
2015 UESTC Winter Training #8 The 2011 Rocky Mountain Regional Contest Regionals 2011 >> North America - Rocky Mountain 开始时貌似是UVAlive挂了,无论交什么都WA,后来转战HDU 这次水题比较多,其中B题据说有更加高级的方法. G题WA了两发,才发现竟然没有输出Case!!! 未完成:D F H I J A - Iterated Difference 水题,模拟迭代即可…
2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据说这套题写出3题就是金牌水平了... Problem D. Group Stage 足球比赛,现在有n(2<= n <=100)支球队.要从中选拔m(1<= m <=n-1)支球队,每支球队互相比赛一场,即比赛n*(n-1)/2场,胜者得3分,平局各得1分.最后从大到小列出排名,如果有…
2015 UESTC Winter Training #6 Regionals 2010 >> North America - Rocky Mountain A - Parenthesis 给一个长度不多于1000的表达式,只包含小写字母,加法运算,省略乘号的乘法运算和括号,输出去掉多余括号的表达式 括号匹配可以使用栈操作,只有两种情况可以去掉这一对括号: 左括号的左边是左边界.加法符号.左括号,并且右括号右边是有右边界.加法符号.右括号 如果括号内没有加法运算(括号内的括号里,也就是下一级括…
2015 UESTC Winter Training #4 Regionals 2008 :: Asia - Tehran 比赛开始时电脑死活也连不上WIFI,导致花了近1个小时才解决_(:зゝ∠)_ 未完成:B E F G H I A - String LD 给n(<=100)个互不相同的字符串(最长为100),然后进行stringld操作,就是每次操作把各个字符串的首个字符删去,直到 有字符串完全删去 存在两个字符串完全一致 问在最后一次操作之前有几次操作(PS:问法是在太奇怪了,不就是答案…
G.coloring tree BFS计数 题目:给你n(<=5000)个节点的一颗树 你有K(<=5000)种颜色 你可以给每一个节点染一种颜色 总共有Kn种染色方法 在一种染色方法中 定义colorness为每一对相同颜色节点距离中的最短距离 问colorness为D时 有多少种染色方案 结果%mod 解:我们先求出>=D的方案数再减去>=D+1的方案数就是==D的方案数 现在问题变为>=X的方案数 可以看成对于任意一个节点,所有和它距离小于d的节点,不能和它有相同的颜色…
A dp[i][j][k]可以n3地做 但是正解是找把问题转化为一个两点不相交路径 最终答案为C(n+m, n)2-C(n+m, m-1)C(n+m,n-1) B 把题目的矩阵看成无向图的邻接矩阵 这题可以转化为给你n个点 每个点的度数必须为2 有几种情况 Orz... C D 弄懂同构的意思然后直接暴力即可 E F G H I J 树状数组离线维护…
A 一个很好想的dp ll dp[maxn][]; int main() { scanf("%d%d",&n,&k); memset(dp,,sizeof(dp)); dp[][]=,dp[k][]=; ;i<=n;i++) { dp[i+][]+=dp[i][]; dp[i+][]+=dp[i][]; dp[i+k][]+=dp[i][]; } ll ans=; ;i<=n;i++) ans+=dp[i][]; printf("%lld\n&qu…
线段树建边 struct E { int value, modvalue; } a[MAXN << ]; pair<int, int> b[MAXN]; ], r[MAXN << ], tot; int build(int a, int b) { int x; if (a == b) { x =::b[a].second; } else { x = ++tot; } if (a == b) { return x; } ; l[x] = build(a, mid); r[…
A 增广 #include<bits/stdc++.h> using namespace std; + ; vector<int> g[MAXN]; int a[MAXN], b[MAXN], sz[MAXN], cnt[MAXN]; bool mg[MAXN], vis[MAXN]; int n, m; ) { if (g[u].empty()) //如果当前数没有位置是成对的(a[i+1]=a[i]+1)当然不可能缝 { return false; } //第一种情况 for…