摘要:
/* 删除所有度小于2的节点,求剩余联通快大小 把要删除的点压入队列,删除与他的所有连边,如果删除该边后,与该点相连的点度小于2,那么把那个点压人队列 最后并查集/dfs/bfs之类的判断联通块大小就好了*/#include using namespace std; const int maxn=1e4+5; typedef long long ll; vector g[maxn];//边... 阅读全文
摘要:
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学 阅读全文
摘要:
/* 特殊处理FFFFFFFF +1的会变成00000000的情况,因为只会变一次,所以判断一下m+n>0xFFFFFFFF就行了 然后问题就简化为了计算00000000-n之间0-f出现的次数,因为算前导0,那么从高位向低位按位枚举就行了*/#include using namespace std; typedef long long ll; const ll INF=0xFFFFFFFF... 阅读全文
摘要:
一个班有n个小朋友,要选一个班长,(n>=3),每个人不能投自己,给出每个人想要选的人,1号小朋友相当班长,如果一个小朋友不选自己 那么,自己可以给他bi个糖果让他选自己,那么请输出,最少花费多少个糖果 ,1号小朋友可以当上班长 开始的做法是贪心小的,那么问题很复杂,直接枚举小的是不符合条件的 后来 阅读全文
摘要:
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ 阅读全文
摘要:
#include using namespace std; const int maxn=1e3+5; int val[maxn][maxn],l[maxn],r[maxn],h[maxn]; int ans,lmax,rmax,n,m,j; void solve(){ ans=0; for(int i=1;il[j])l[j]=lmax; }else h[j]=0,l[j]=1,r... 阅读全文
摘要:
#include using namespace std; const int maxn=1e5+5; char s[maxn]; int pre[maxn],Min[maxn>1; build(rt=r)return Min[rt]; int mid=(l+r)>>1; int res=INT_MAX; if(qlmid)res=min(res,query(rtv)swap(u,... 阅读全文
摘要:
#include using namespace std; typedef long long ll; const int maxn=2e5+5; const int mod=1e9+7; /* 因为是有向的无环图,要找(i,j)之间的路径数, 肯定是考虑toposort就可以了 然后就是考虑怎么统计cnt(i,j)*a[i]*b[j] 如果cnt[i]表示到达i的种类,res[i]表... 阅读全文
摘要:
1 #include 2 using namespace std; 3 typedef long long ll; 4 const int maxn=3000; 5 6 /* 7 n m >n>>m){ 27 28 solve(n,cnt1); 29 solve(m,cnt2); 30 31 ll ... 阅读全文
摘要:
题意:一款游戏有n个关卡,正常条件下第i个关卡耗时ai,游戏中存在一个加速器,如果在某个关卡获得这个加速器,那么在这之后的关卡中使用的时间为bi 在每个关卡获得加速器的概率是pi,如果你可以随便安排关卡的顺序,那么输出最少的通关的期望时间 考虑Ci=Ai-Bi,那么按照给定顺序的期望是B1+...B 阅读全文