RT,即将退役的人懒得一篇篇写题解,于是有了这个东西


CF1004E

树上选一条不超过k个点的链,最小化其余点到链上点的最大距离

这个思路很有意思,不像平时一般的树上问题,是从叶子开始一点点贪心合并直到合得只剩一条链,这条链就是最后的答案

用优先队列完成,复杂度$O(n\log n)$

 #include<set>
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
struct a{int pts,len;};
bool operator < (a x,a y)
{
return x.len>y.len;
}
set<pair<int,int> > st[N];
priority_queue<a> hp;
int n,k,t1,t2,t3,siz,ans;
int main()
{
scanf("%d%d",&n,&k),siz=n;
for(int i=;i<n;i++)
{
scanf("%d%d%d",&t1,&t2,&t3);
st[t1].insert(make_pair(t2,t3));
st[t2].insert(make_pair(t1,t3));
}
for(int i=;i<=n;i++)
if(st[i].size()==)
hp.push((a){i,(*st[i].begin()).second});
while(hp.size()>||k<siz)
{
a mn=hp.top(); hp.pop(),siz--,ans=mn.len;
int p=mn.pts,nxt=(*st[p].begin()).first;
st[nxt].erase(st[nxt].lower_bound(make_pair(p,)));
if(st[nxt].size()==)
hp.push((a){nxt,ans+(*st[nxt].begin()).second});
}
printf("%d",ans);
return ;
}

CF772D

题面看题吧

感觉这题没啥意义,因为考场不太可能想出来

这个东西可以理解为十进制下的“与”(=。=???),记录每个权值出现的次数,出现的和,出现的平方和,搞一个十进制FWT来做

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e6+,M=1e6,mod=1e9+;
int n,rd,a[N],b[N],c[N],f[N],pw2[N]; long long ans;
void Add(int &x,int y)
{
x+=y;
if(x>=mod) x-=mod;
}
void Trans(int *arr,int typ)
{
if(~typ)
{
for(int i=;i<M;i*=)
for(int j=M-;~j;j--)
if(j/i%) Add(arr[j-i],arr[j]);
}
else
{
for(int i=;i<M;i*=)
for(int j=;j<M;j++)
if(j/i%) Add(arr[j-i],mod-arr[j]);
}
}
int main()
{
scanf("%d",&n),pw2[]=;
for(int i=;i<=n;i++) pw2[i]=2ll*pw2[i-]%mod;
for(int i=;i<=n;i++)
{
scanf("%d",&rd);
a[rd]++,Add(b[rd],rd),Add(c[rd],1ll*rd*rd%mod);
}
Trans(a,),Trans(b,),Trans(c,);
for(int i=;i<M;i++)
if(a[i]) f[i]=(a[i]==)?c[i]:1ll*pw2[a[i]-]*(1ll*b[i]*b[i]%mod+c[i])%mod;
Trans(f,-);
for(int i=;i<M;i++) ans^=1ll*i*f[i];
printf("%lld",ans);
return ;
}

CF908D

据yjc说是NOIP前留的题,然而我并不会,wsl

设$dp[i][j]$表示前缀中有i个a和j个ab的期望,在i+j>=k时到达边界,用高中数学讲的 等差数列*等比数列 算一算

答案是dp[1][0],因为dp[0][0]在没有a的时候会自己转移自己

代码咕咕了

CF908H

调了一下午,不知道为啥过不去,重构了一遍好了。。。。。。

先把AND的连起来,然后一个联通块里XOR判无解,剩下的XOR连边之后相当于选不相交独立集并起来,DP+容斥到有方案就输出

注意不用管siz=1的

 #include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#define vint vector<int>
#define vit vector<int> ::iterator
using namespace std;
const int N=,M=(<<)+,mod=;
int n,m,aset[N],siz[N],idx[N],sta[N],bit[M],pw[M],dp[M]; char str[N][N];
int Finda(int x)
{
return x==aset[x]?x:aset[x]=Finda(aset[x]);
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%s",str[i]+),aset[i]=i,siz[i]=;
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
if(str[i][j]=='A')
{
int fx=Finda(i),fy=Finda(j);
if(fx!=fy) aset[fy]=fx,siz[fx]+=siz[fy];
}
memset(idx,-,sizeof idx);
for(int i=;i<=n;i++)
if(Finda(i)==i&&siz[i]>) idx[i]=m++;
for(int i=;i<m;i++) sta[i]|=<<i;
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
if(str[i][j]=='X')
{
int fx=Finda(i),fy=Finda(j);
if(fx==fy) printf("-1"),exit();
if(~idx[fx]&&~idx[fy])
{
sta[idx[fx]]|=<<idx[fy];
sta[idx[fy]]|=<<idx[fx];
}
}
dp[]=; int all=(<<m)-;
for(int i=;i<=all;i++)
{
int lbt=i&-i;
bit[i]=bit[i>>]+(i&);
dp[i]=(dp[i^lbt]+dp[i^(sta[(int)log2(lbt)]&i)])%mod;
}
for(int i=;i<=all;i++) pw[i]=;
for(int i=;i<=n;i++)
{
int tmp=;
for(int j=all;~j;j--)
{
if((m-bit[j])&) (tmp+=mod-pw[j])%=mod;
else (tmp+=pw[j])%=mod;
pw[j]=1ll*pw[j]*dp[j]%mod;
}
if(tmp) printf("%d",n-+i),exit();
}
return ;
}

CF1140

肥肠爆芡,因为沙茶博主看不懂E和之后的题解,这场比赛咕了

省选前的CF题的更多相关文章

  1. 省选前的th题

    沙茶博主终于整完了知识点并学完了早该在NOIP之前学的知识们 于是终于开始见题了,之前那个奇怪的题单的结果就是这个了 题目按沙茶博主的做题顺序排序 个人感觉(暂时)意义不大的已被自动忽略 洛谷 491 ...

  2. 省选前的JOI

    RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm ...

  3. [TaskList] 省选前板子补完计划

    省选前本子补完计划 [ ] 带权并查集 [ ] 树上莫队 - UOJ58 [WC2013]糖果公园 loj2485「CEOI2017」Chase

  4. [OI]省选前模板整理

    省选前把板子整理一遍,如果发现有脑抽写错的情况,欢迎各位神犇打脸 :) 数学知识 数论: //组合数 //C(n,m) 在n个数中选m个的方案数 ll C[N][N]; void get_C(int ...

  5. csp退役前的做题计划1(真)

    csp退役前的做题计划1(真) 因为我太菜了,所以在第一次月考就会退役,还是记录一下每天做了什么题目吧. 任务计划 [ ] Z算法(Z Algorithm) 9.28 [x] ARC061C たくさん ...

  6. 解决el-tree lazy懒加载时,连续勾选前两个子节点后第二次进入默认选中时,将父节点也勾选的问题

    在用到el-tree的懒加载和默认勾选功能时,若第一次勾选前几个连续节点,第二次进入默认勾选时,由于el-tree子节点尚未完全加载(只加载出来前几个),默认勾选已经开始(已加载出来的子节点被默认勾选 ...

  7. yyb省选前的一些计划

    突然意识到有一些题目的计划,才可以减少大量查水表或者找题目的时间. 所以我决定这样子处理. 按照这个链接慢慢做. 当然不可能只做省选题了. 需要适时候夹杂一些其他的题目. 比如\(agc/arc/cf ...

  8. NOIP前的刷题记录

    因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数   组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008 ...

  9. 【POJ各种模板汇总】(写在逆风省选前)(不断更新中)

    1.POJ1258 水水的prim……不过poj上硬是没过,wikioi上的原题却过了 #include<cstring> #include<algorithm> #inclu ...

随机推荐

  1. CentOS 7.2:Failed to start IPv4 firewall with iptables

    问题 系统是centos7.2,且已经安装了iptables服务,但是在执行启动命令后,却报了iptables服务无法正常启动的错误. 启动命令如下: systemctl start iptables ...

  2. Slurm任务调度系统部署和测试(源码)(1)

    1. 概述1.1 节点信息2. 节点准备3. 部署NTP服务器4. 部署LDAP服务器5. 部署Munge认证服务6. 部署Mysql数据库服务7. 部署slurm7.1 创建slurm用户7.2 挂 ...

  3. 2019年以后ArcGIS 调用天地图的资源URL

    2019年1月1日起,天地图做出如下变更,导致直接在Arcgis/ArcMap中添加WMTS服务不能用了. 国家天地图解释的很清楚,注册个人用户就可以了. 原有调用方式不变,只要在URL 后添加“&a ...

  4. centos6下ActiveMQ+Zookeeper消息中间件集群部署记录

    由于最近一个项目并发请求压力比较大,所以考虑改进架构,引入消息中间件集群作为一个缓冲消息队列,具体需求:1)将大量的WebService请求报文发送到mq集群之中,并保持消息先后顺序2)保证每个消息的 ...

  5. Mongodb副本集+分片集群环境部署记录

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  6. C. Party Lemonade

    链接 [http://codeforces.com/group/1EzrFFyOc0/contest/913/problem/C] 分析 看代码,巧妙的贪心 代码 #include<bits/s ...

  7. HashMap和HashTable区别【转载】

    今天看到的HashMap和HashTable区别介绍,收藏留着学习. 出处:http://www.importnew.com/24822.html 代码版本 JDK每一版本都在改进.本文讨论的Hash ...

  8. SCRUM 12.22

    周一,大家现在课程也比较少,今天都在非常努力地写代码. 任务分配如往常一样,我们现在基本将工作的重心放在完善已有的组件上. 成员 任务 彭林江 落实API 牛强 落实意见反馈功能测试 高雅智 测试已完 ...

  9. HTTP基础与Android之(安卓与服务器通信)——使用HttpClient和HttpURLConnection

    查看原文:http://blog.csdn.net/sinat_29912455/article/details/51122286 1客户端连接服务器实现内部的原理 GET方式和POST方式的差别 H ...

  10. SpringMVC一例 是否需要重定向

    在ASP.NET MVC下: return view("List") 和 return RedirectToAction("List") 百度知道的最佳答案: ...