2017北京国庆刷题Day7 afternoon】的更多相关文章

期望得分:100+30+100=230 实际得分:60+30+100=190 排序去重 固定右端点,左端点单调不减 考场上用了二分,没去重,60 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 void read(int &x) { x=;char c=getchar(); while(!isdigit(c)) c=getc…
期望得分:100+100+100=300 实际得分:100+100+100=300 T1 一道图论好题(graph) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,不仅有边权还有点权. LYK给出了一个子图的定义,一张图G’={V’,E’}被称作G的子图,当且仅当 ·G’的点集V’包含于G的点集V. ·对于E中的任意两个点a,b∈V’,当(a,b)∈E时,(a,b)一定也…
期望得分:100+0+100=200 实际得分:100+20+0=120 离散化搞搞 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 int a[N],b[N]; bool vis[N]; void read(int &x) { x=; char c=getchar(); while(!isdigit(c)) c=getch…
期望得分:100+60+100=260 实际得分:0+60+40=100 设图中有m个环,每个环有si条边,有k条边不在环中 ans= (2^s1 -2)*( 2^s2 -2)* (2^s3 -2)…… *( 2^sm -2)* 2^k (环上的边只有两种可能形成环) 找环好找,怎么找树? 一种方法是tarjan找出所有的环,总边数-环的边数=树的边数 std用了拓扑排序 考场上忘了树的情况,爆零了. 注意:n个点n条边是环套树森林 #include<cstdio> #define N 100…
期望得分:100+100+50=250 实际得分:100+70+50=220 T1 最大值(max) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n的正整数数列ai(下标为1~n).并且有一个参数k. 你需要找两个正整数x,y,使得x+k<=y,并且y+k-1<=n.并且要求a[x]+a[x+1]+…+a[x+k-1]+a[y]+a[y+1]+…+a[y+k-1…
期望得分:100+100+0=200 实际得分:5+0+0=5 每加入一个数,x的因数位置++ 注意:根号x枚举时,如果x是完全平方数,根号x会重复累计2次,要减去 考场上没减,5分 /(ㄒoㄒ)/~~ #include<cmath> #include<cstdio> #include<iostream> using namespace std; #define N 40001 int sum[N]; void read(int &x) { x=; char c…
期望得分:100+100+40=240 实际得分:100+0+40=140 二进制拆分.二进制前缀和 #include<cstdio> #include<iostream> using namespace std; typedef long long LL; #define N 100001 int a[N],b[N],c[N]; ; ],sumb[N][]; ]; void read(int &x) { x=; char c=getchar(); while(!isdig…
期望得分:100+0+30=130 实际得分:100+36.5+0=136.5 T3 一个变量写混了,丢了30.. 模拟栈 #include<cstdio> #include<cstring> using namespace std; #define N 10001 char s[N]; int st[N],top; int main() { freopen("a.in","r",stdin); freopen("a.out&quo…
期望得分:100+60+0=160 实际得分:100+30+0=130 考场上用的哈希 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define mod 1000003 #define mod2 100003 ]; bool vis[mod],vis2[mod2]; int hash1,hash2; int gethash() { int len=strlen(…
期望得分:100+100+40=240 实际得分:100+40+0=140 T1 一道图论神题(god) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只有点权. LYK想把这个图删干净,它的方法是这样的.每次选择一个点,将它删掉,但删这个点是需要代价的.假设与这个点相连的还没被删掉的点是u1,u2,…,uk.LYK将会增加a[u1],a[u2],…,a[uk]的疲劳值.…