头疼,不说废话了,祝大家rp++。

T1:

暴力枚举,n3

枚举两个串开始匹配的位置,每一次尽量修改。

#include<iostream>
#include<cstdio>
using namespace std;
int n,k,cnt,num,ans;
char a[],b[];
int main()
{
scanf("%d%d",&n,&k);
scanf("%s",a+);
scanf("%s",b+);
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
cnt=,num=;
for(int l=i,r=j;l<=n&&r<=n;l++,r++){
if(a[l]!=b[r])cnt++;
if(cnt>k)break;
num++;
}
ans=max(ans,num);
}
}
printf("%d",ans);
return ;
}

T2:

枚举四个点中间的两个点,它们对应的路径条数就是度数减一的乘积,即(du[i]-1)*(du[j]-1)。减一是因为它们彼此相连。

然后还要考虑重复的情况,即它们走到同一个点。因为一条满足条件的链节点数只有四,重复的情况只可能是它们两个第一步走出去的点是同一个点,即两个点都和那个重复点直接相连,这种时候答案多统计了一次。可以用bitset存每个点连出去的节点,答案减去交集的大小。

听他们说这个是三元环计数……?不知道不了解,之后补课。

因为我不会用bitset,考场上全靠自己根据一点模糊印象瞎搞,一开始给bitset开出的100000的大小到最后也没改,然后t成了40分。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<bitset>
using namespace std;
int n,d[];
long long ans;
bitset<>s[];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
for(int j=,x;j<=n;j++){
scanf("%1d",&x);
if(x)s[i][j]=,d[i]++;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(i!=j&&s[i][j]){
ans+=(d[i]-)*(d[j]-);
ans-=(s[i]&s[j]).count();
}
}
}
printf("%lld",ans);
return ;
}

T3:

首先考虑枚举每个val的子集连0边,然后每个点向对应权值连1边,再由权值向这个点连0边。这就好像出发的起始费用是1,走到另一个节点的结尾收费是0,于是每条路全长为1。

发现这样连出来的图,很多节点都能到达同一个节点,然而这些节点彼此之间也存在到达的关系。可以考虑让一个点不会到达“可以到达的点”会到达的点,即减少边数,让能被传递的到达关系尽量代替直接到达关系。那么只要让每个权值连向它的某一位去掉1的值就可以了。原本存在的节点与权值连的两条边不变,题目给出的m条边也不变,最后边数变成了20*220+2n+m。

因为边权只存在1和0,直接跑双端队列bfs,每一次要把能0边到达的所有点都加进队列保证距离不减。挺丢人的,我没太弄明白最后这句,后来一想bfs每个点只到达一次,可不是要尽量更早到达吗……

#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>
#include<cmath>
#include<queue>
using namespace std;
const int inf=;
const int maxn=(<<);
deque<pair<int,int> >q;
long long d[];
int n,m,t,cnt=maxn,num,p,sum;
int a[],vis[];
int ver[],Next[],tot,head[],edge[];
void add(int x,int y,int z){
ver[++tot]=y;
Next[tot]=head[x];
head[x]=tot;
edge[tot]=z;
}
void bfs(){
d[maxn+]=;
q.clear();
vis[+maxn]=;
q.push_back(make_pair(+maxn,));
while(!q.empty()){
int x=q.front().first;
d[x]=q.front().second;
q.pop_front();
if(x<=maxn){
for(int j=;j<=;j++){
if((x&(<<j))&&!vis[x^(<<j)]){
vis[x^(<<j)]=;
q.push_front(make_pair(x^(<<j),d[x]));
}
}
if(!vis[]){
q.push_front(make_pair(,d[x]));
vis[]=;
}
}
for(int i=head[x];i;i=Next[i]){
int y=ver[i];
if(!vis[y]){
vis[y]=;
if(edge[i])q.push_back(make_pair(y,d[x]+));
else q.push_front(make_pair(y,d[x]));
}
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
add(maxn+i,a[i],);
add(a[i],maxn+i,);
}
for(int i=,x,y;i<=m;i++){
scanf("%d%d",&x,&y);
add(x+maxn,y+maxn,);
}
for(int i=;i<=maxn+n;i++)d[i]=-;
bfs();
for(int i=maxn+;i<=maxn+n;i++){
printf("%lld\n",d[i]);
}
return ;
}

写错一句位运算调了一早晨

又没去学校,苟在家里改题。身体状况略有点可笑,因为状态差所以不得不想一些办法来让自己打起精神,但是这么做的话身体就会更差,最后索性放弃治疗。能活多久就多久吧,最少撑两个月就行。

活着还是死去有什么区别呢。

2019.9.20 csp-s模拟测试48 反思总结的更多相关文章

  1. [CSP-S模拟测试48]反思+题解

    状态很垃圾的一场考试.感觉“这么多分就够了”的心态很是在给自己拖后腿. 打开题面,第一页赫然写着:$Claris' Contest$. 吓得我差点手一抖关掉.不过后来想想似乎强到变态的人出的题都不是很 ...

  2. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  3. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  5. 2019.8.14 NOIP模拟测试21 反思总结

    模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还 ...

  6. 2019.8.9 NOIP模拟测试15 反思总结

    日常爆炸,考得一次比一次差XD 可能还是被身体拖慢了学习的进度吧,虽然按理来说没有影响.大家听的我也听过,大家学的我也没有缺勤多少次. 那么果然还是能力问题吗……? 虽然不愿意承认,但显然就是这样.对 ...

  7. 2019.8.1 NOIP模拟测试11 反思总结

    延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神 ...

  8. 2019.8.12 NOIP模拟测试18 反思总结

    写个博客总是符合要求的对吧 回来以后第一次悄悄参加考试,昨天全程围观… 然后喜提爆炸120分wwwwwwwww T1用了全机房最慢的写法,导致改掉死循环T掉的一个点以后还是死活过不了最后一个点.T2全 ...

  9. 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】

    [题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...

随机推荐

  1. DuiLib学习笔记3.颜色探究

    在前面两篇日志已经能使用xml了.今天准备好好的折腾一番,结果在颜色上却掉坑里了. 起初我在ps里取颜色为0104ff 这里01为R,04为G,ff为B 在控件的属性里有这样一个属性bkcolor=& ...

  2. duilib教程之duilib入门简明教程1.前言

    关于duilib的介绍就不多讲了,一来不熟,二来小伙伴们想必已经对比了多个界面库,也无需赘述.下面进入正题:    不看广告看疗效! 已有众多知名公司采用duilib做为界面库,如华为网盘.PPS(P ...

  3. echarts高级

    常用,待续... ♣tooltip自动轮播 ♣ 实现数据自动轮播 原理:其实就是timeline,获取某几段(时间)的数据,然后隐藏timeline ♣ legend自动轮播 ♣ 左侧多字出省略号 f ...

  4. 02_Hibernate持久化配置

    一.hibernate对象持久化 Web开发的分层: 为了把数据访问细节和业务逻辑分开, 一般把数据访问作为单独的持久化层.DAO是数据访问对象,使用hibernate后,数据访问对象中操作的API将 ...

  5. Python学习day35-并发编程(1)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  6. Ubuntu中使用Nginx+rtmp搭建流媒体直播服务

    一.背景 本篇文章是继上一篇文章<Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务>文章而写,在上一篇文章中我们搭建了一个点播服务器,在此基础上我们再搭建一个直播服务器, ...

  7. SVN 环境搭建

    安装配置 安装环境 #查看系统版本环境 [root@svn ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@svn ~]# u ...

  8. Odoo中Qweb使用入门

    参考 可参考官网例子https://doc.odoo.com/trunk/web/qweb/或 http://thierry-godin.developpez.com/openerp/tutorial ...

  9. vs2013+opencv2410的一些问题

    1.设置microsoft.user时,debug和relaese只能修改一次,相对应的32和64会相应修改,因此可以新建一个属性表,命名为OpenCV2410debug: 2.报错:error LN ...

  10. 阿里OSS ajax方式 web直传

    部分js代码 send_request = function(){//这是从后台获取认证策略等信息. var htmlobj=$.ajax({url:root+"/service/polic ...