Bike老爷问了好几天到底要怎样简单的题目你们才能AK啊终于在他每天降难度直到要走了才出了一套我们能AK的题。虽然前几天的题换成llj肯定随便AK。

其实最近有点方虽然通常最后都写完了把该拿的分拿了该拍的拍了,但是并不是很顺利的那种前30min切了T1,再1h切t2拍了最后写t3然后拍这样,这套题推了半天t1没推出来就弃了去搞t2,结果半天把fwt打挂了又去搞t3,开考1h多终于把t3搞出来了才又去回想我的fwt,最后1h先猜了个t1的结论然后先想打个树dp之类的验证发现不会,又证了半天才勉强觉得是对的。t3还没有拍,交题的时候都很虚。如果是正式的考场,特别是像noip比较简单的,这种情况我可能心态就崩了,别说AK,一不小心爆个0也不是不可能。但总得来说先通读题每道有个大概的想法和及时弃题不要对着一个狂肝其他该要的分都不要(去年能要是明白这个道理我大概就不在这里了吧)应该是没错的,然后心态要稳这样?

B 君的第一题hohhot

结论题。画一条链,发现胜负只跟最上面一条边有关,画一朵菊花,发现答案就是和根相连的所有边的异或和。大胆地猜测,这是个结论。考虑和根相连只有一条边的情况,任何一次操作都会改变这条边,那么胜负只跟这条边原本的状态有关。如果根有多条边相连,那么每条边底下的操作情况互不影响,答案就是每条边的答案的异或和。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=;
typedef long long LL;
typedef double db;
using namespace std;
int n,a[N]; template<typename T> void read(T &x) {
char ch=getchar(); x=; T f=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} #define ANS
int main() {
#ifdef ANS
freopen("hohhot.in","r",stdin);
freopen("hohhot.out","w",stdout);
#endif
read(n);
For(i,,n) {
int x,y,z;
read(x); read(y); read(z);
a[x]^=z; a[y]^=z;
}
For(i,,n) printf("%d\n",a[i]);
Formylove;
}

B 君的第二题lhasa

这不是一道FWT的裸题么,毕老爷给的标答也就是换一种方式的各种集合变换,和FWT也差不到哪去吧,我觉得noip不会考。。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=;
typedef long long LL;
typedef double db;
using namespace std;
int n,k,a[N]; template<typename T> void read(T &x) {
char ch=getchar(); x=; T f=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} LL f[N],b[N];
void FWT(int n,int F) {
for(int i=;i<n;i<<=)
for(int j=,pp=(i<<);j<n;j+=(pp))
for(int k=;k<i;k++) {
LL x=f[j+k],y=f[j+k+i];
if(F==) f[j+k+i]=x+y;
else f[j+k+i]=y-x;
} } #define ANS
int main() {
#ifdef ANS
freopen("lhasa.in","r",stdin);
freopen("lhasa.out","w",stdout);
#endif
read(n); read(k);
For(i,,n) {
read(a[i]);
f[a[i]]++;
}
int up=(<<k);
For(i,,up) b[i]=f[i];
FWT(up,);
For(i,,up) f[i]=f[i]*f[i];
FWT(up,-);
For(i,,up) f[i]=(f[i]-b[i])/;
//For(i,0,up-1) printf("%lld ",f[i]); puts("");
For(i,,k-) {
Rep(s,up-,) if(!(s&(<<i)))
f[s]+=f[s|(<<i)];
}
For(s,,up-) printf("%lld\n",f[s]);
Formylove;
}

B 君的第三题urumqi

并查集+set启发式合并,之前讲过的一道题。

我开了两个并查集,一个并查集维护和我相同集合的元素,一个并查集维护每个集合不能有的元素。每个集合的每个并查集开个set。

合并的时候启发式合并,不等关秀就在每个集合不能有的元素的set里放进一个对面集合的代表元。相等关系我处理的比较暴力,不管怎么样先合并(启发式)再说,合并到一半发现冲突就把这部分合并都撤销了输出NO否则最终合并完输出YES,因为有撤销操作所以大概要用multiset。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=;
typedef long long LL;
typedef double db;
using namespace std;
int n,sz,x[N],y[N],o[N],ls[N];
int sta[N],top,sta2[N],top2;
int fa[][N];
multiset<int>s1[N],s2[N]; template<typename T> void read(T &x) {
char ch=getchar(); x=; T f=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} int find(int x,int f) { return x==fa[f][x]?x:fa[f][x]=find(fa[f][x],f); } #define ANS
int main() {
#ifdef ANS
freopen("urumqi.in","r",stdin);
freopen("urumqi.out","w",stdout);
#endif
read(n);
For(i,,n) {
read(x[i]); read(y[i]); read(o[i]);
ls[++ls[]]=x[i];
ls[++ls[]]=y[i];
}
sort(ls+,ls+ls[]+);
sz=unique(ls+,ls+ls[]+)-(ls+);
For(i,,n) {
x[i]=lower_bound(ls+,ls+sz+,x[i])-ls;
y[i]=lower_bound(ls+,ls+sz+,y[i])-ls;
}
For(i,,sz) {
fa[][i]=i;
fa[][i]=i;
s1[i].insert(i);
}
For(i,,n) {
int u1=find(x[i],),v1=find(x[i],);
int u2=find(y[i],),v2=find(y[i],);
if(o[i]) {
if(u1==u2) puts("Yes");
else {
int fl=;
if(s1[u1].size()<s1[u2].size()) swap(u1,u2),swap(v1,v2);
fa[][u2]=u1;
top=;
while(s1[u2].size()) {
int tp=*s1[u2].begin();
if(s2[v1].find(tp)!=s2[v1].end()) {
while(top) {
int t=sta[top--];
s1[u2].insert(t);
s1[u1].erase(t);
}
fl=;
break;
}
s1[u2].erase(s1[u2].begin());
sta[++top]=tp;
s1[u1].insert(tp);
}
if(!fl) {
int tpfl=;
if(s2[v1].size()<s2[v2].size()) { tpfl=; swap(u1,u2),swap(v1,v2); }
fa[][v2]=v1;
top2=;
while(s2[v2].size()) {
int tp=*s2[v2].begin();
if(s1[u1].find(tp)!=s1[u1].end()) {
while(top) {
int t=sta[top--];
if(!tpfl) {
s1[u2].insert(t);
s1[u1].erase(t);
}
else {
s1[u1].insert(t);
s1[u2].erase(t);
}
}
while(top2) {
int t=sta2[top2--];
s2[v2].insert(t);
s2[v1].erase(s2[v1].find(t));
}
}
s2[v2].erase(s2[v2].begin());
sta2[++top2]=tp;
s2[v1].insert(tp);
}
}
if(fl) {
puts("No");
fa[][u1]=u1; fa[][u2]=u2;
fa[][v1]=v1; fa[][v2]=v2;
}
else puts("Yes");
}
}
else {
if(u1==u2) puts("No");
else {
puts("Yes");
s2[v1].insert(u2);
s2[v2].insert(u1);
}
}
}
Formylove;
}

NOIp2018集训test-10-19 (bike day5)的更多相关文章

  1. [NOIP2018模拟赛10.19]只会暴力报告

    闲扯 今天又是暴力满满(并不)的一天呢 昨天老师说了分数要正态分布,今天看起来...不过暴力分很多,虽然我人太傻逼又没打满 T1 woc?不是说送分的吗,看起来又是个树形DP神题,暴力告辞,链上的搞一 ...

  2. 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定

    [源码下载] 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定 作者:we ...

  3. Scrum会议10.19

    Scrum会议 组名称:好好学习 项目名称:记账本 参会成员:林莉(Master)胡丽娜 宫丽君 汪东涵 时间:2016.10.19 已完成内容: 1.完成新项目的查找,查找学姐的代码和项目. 2.理 ...

  4. IDC Digital Transition Annual Festival(2018.10.19)

    时间:2018.10.19地点:北京万达文化酒店

  5. 2018.10.19浪在ACM 集训队第一次测试赛

    2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...

  6. 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)

    20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  7. [NOIP2018模拟赛10.16]手残报告

    [NOIP2018模拟赛10.16]手残报告 闲扯 炉石乱斗模式美滋滋啊,又颓到好晚... 上来T2先敲了树剖,看T1发现是个思博DP,然后没过大样例,写个暴力发现还是没过大样例!?才发现理解错题意了 ...

  8. NOIp2018集训test-10-18 (bike day4)

    这是一套简单题,这几天的考试让bike老爷感觉很绝望,说实话我也确实不知道还能怎么更简单了. 这几天的题换做llj.sxy应该都能轻松AK吧,至少随便考个250+应该不是问题吧,我越来越觉得觉得我跟他 ...

  9. NOIp2018集训test-10-17 (bike day3)

    发现自己gradully get moodier and moodier了 负面情绪爆发地越来越频繁,根本out of control,莫名其妙地就像着了魔一样 为什么用英语大概是因为今天早上早自习因 ...

随机推荐

  1. 树莓派上安装boost库

    一.安装boost库 sudo apt-get install libboost-dev aptitude search boost 二.编写测试代码 #include <iostream> ...

  2. POJ 3414 Pots (dfs,这个代码好长啊QAQ)

    Description You are given two pots, having the volume of A and B liters respectively. The following ...

  3. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?

    千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾,露出真正的面目.对众多 Java 程序员来说,这一天无疑是一个重大的日子,首先 Java 开发者们再也不用羡 ...

  4. Another Blog

    I also hold a blog with thoughts of English learning. Get there ===>. It's a private blog. Actual ...

  5. [CSP-S模拟测试53]题解

    A.u 只涉及到区间修改可以考虑差分,然而如果每一行都差分复杂度还是过高.我们发现差分标记也是连续的(一行横着的一行斜着的),所以可以维护两个 差分的差分,扫两遍统计即可. #include<c ...

  6. TI推出一款强大模拟设计与仿真工具TINA-TI 9.

    德州仪器 (TI) 宣布推出一款基于 SPICE 的强大模拟设计与仿真工具 TINA-TI 9.1.该免费软件程序的最新版本与 7.0 版相比速度平均提高 5 倍,可帮助工程师在无任何节点或器件数量限 ...

  7. 65、salesforce的数据分页

    <apex:page controller="PagingController"> <apex:form > <apex:pageBlock titl ...

  8. PHP面试 MySQL创建高性能索引考点

    MySQL索引 MySQL索引的基础和类型 索引的基础:索引类似于书籍的目录,要想找到一本书的某个特定篇章,需要查找书的目录,定位对应的页码 存储引擎使用类似的方式进行数据查询,先去索引当中找到对应的 ...

  9. Autofac框架详解 转载https://www.cnblogs.com/lenmom/p/9081658.html

    一.组件 创建出来的对象需要从组件中来获取,组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式: 1.类型创建RegisterType AutoFac能够通过反射检查一个类型,选择 ...

  10. The request with exception: The SSL connection could not be established, see inner exception. requestId 解决方案

    DOTNET CORE 部署 Centos7 抛出异常 环境变量如下: .NET Core SDK (reflecting any global.json): Version: 2.2.401 Com ...