2020.2.16 UPD: D,K都有问题 赛后来改...

2020.2.17 UPD:

D改了蛇皮走位。简单解释就是l朝着顺时针不断加+1,r朝着逆时针不断加+1,见代码。

K这样T(1<<16)M 在牛客的机子上容易T,另一种枚举是1的位再找是0的位统计跑的更快。这份代码没法保证一定过的去,经常就跑了1900多ms差点就t。

E牛客机子sort再kruskal好像有点难过,要用桶排序

B 牛客机子map过不去,只能字典树了。。。(map好像是能过的,我姿势不对?不能记录在map里记录每个前缀,而是对每个前缀找map里是否是这个字符好像,不然map里太多了就T了)

H 二分思想差不多有的,就是没想到check的时候,子树一旦不满足居然对儿子直接sort取大的减去就可以了。的确非常暴力啊。

J 就是树剖之后线段树部分要维护 (ax+b)的三次方,挺麻烦的,别的差不多都看懂的。

END.

暑期训练以来首次参赛,体验还行吧,过程有些战战兢兢。

刚开始以为是正式队,热身赛只过了一题,有很大的压力,正赛前一天晚上才知道是打星队,有点如释重负的感觉。也幸好都是打星队,不然真的有可能打铁,虽然实际上我们队伍下半程整体状态还不错,终场甚至接近铜牌区,但比赛中就是一切皆有可能。
熟悉了参赛的流程,每个阶段该干什么,有了首次的体验,蓝色的马甲不错hhhh。

实际比赛过程中,很大的感觉是,区域赛的题目更加注重对题目的分析,对思维的考量,从一个题目中看出它是怎么构造运转的,用什么样的算法去实现,和我们平时对着一类带标签的题目去做感觉完全不一样。

比如说K题,我就是不知道它用啥去做,一直想着搜索,却又不知道怎么在后效性下保持最优。

赛后才知道是二分图,然而这学期才刚学离散数学,还没学到,无奇环=二分图!

卡了队伍保守估计3小时以上,出不来。赛后我队长给出了bfs建图再找的做法(感觉还挺优的),我在学了二进制枚举之后,写了O(2^16*m)的枚举找的做法。有收获吧。

E题靠着队长的神奇思维,说是无论怎么走,一个图可以获取的最大边数是固定的n-1,验证了一下,发现确实,得出了最大生成树的做法,码了板子,调了一会儿,我没清tot导致RE了一发(紧张过度,我的锅,贡献罚时),也就过了,其实E题花的时间也不多吧?感觉就30分钟多?所以说想到用什么做,甚至是猜想,并且能验证,就可以不用多久码出来。

B题据说字典树裸题,判有没有别的字符串是它的前缀,虽然也看出来了字典树,但幸好板子上正好没有这个(滑稽),省的抄板子调了,然后和队友讨论,发现最长的是10个字符所以可以暴力map,记录每个string,出现就映射到1,重复出现显然已经不行,再遍历对每个当前的串去分解取0~k位置的子串,最多O(10n)?这里我还想转化到int 除10再转化回来,队友说可以直接考虑substr,然后虽然substr运用的比较少,但最后还是搞出来了。我队友nb!

然后D答案很好猜,我们队最后几分钟疯狂写构造的代码,最后还是没调好,机时欠缺,大家都有自己的想法和代码,有些混乱,还是时间没把握好,思路不够清晰明确。

赛后我补了一下我的D的构造,只是还没有OJ可以交,不知对不对。

总体而言,虽然成绩表面上似乎还行(与其他队相比之下),但实际上比赛确实充满着运气,我f们的实力还不足以克服压制一切运气,还需努力呀!熟悉板子,主要还是思考和模拟构造。
然后BDEHK都可以再补或者熟悉一下吧,字符串、树、和图。

D代码(未提交):

(如果构造错了我再改


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    scanf("%d",&T);
    for(int t=1; t<=T; ++t)
    {
        int n,l,r;
        scanf("%d",&n);
        printf("Case #%d: %d\n",t,n/2);
        for(int i=1; i*2<=n; ++i)
        {
            l=i;
            r=(l+n-2)%n+1;
            for(int j=1; j<n; ++j)
            {
                if(j&1)
                {
                    printf("%d %d\n",l,r);
                    l=l%n+1;
                }
                else
                {
                    printf("%d %d\n",r,l);
                    r=(r+n-2)%n+1;
                }
            }
        }
    }
    return 0;
}

K代码

(未提交,感觉应该对的吧?):

#include <bits/stdc++.h>
#define debug(x) cout << #x << ": " << x << endl
using namespace std;
typedef long long ll;
const int MAXN=3e2+;
const int INF=0x3f3f3f3f;
const int MOD=1e9+; struct edge
{
int x,y;
}e[MAXN]; int vis[]; int main()
{
ios::sync_with_stdio(false);
cin.tie();
int t;
cin>>t;
int kase=;
while(t--)
{
int n,m;
cin>>n>>m;
for(int i=;i<m;++i)
{
cin>>e[i].x>>e[i].y;
e[i].x--; //便于左移 1号点代表二进制最低位 即 1<<0;
e[i].y--;
}
int ans=;
for(int i=;i<(<<n);++i)//二进制枚举
{
//debug(i);
int tmp=;
for(int j=;j<m;++j)
{
int t1=i&(<<e[j].x); // 取出第e[j].x位
int t2=i&(<<e[j].y);
//debug(t1);
//debug(t2);
if((t1== &&t2 )|| (t2== && t1)) //一个0,一个非0,说明属于不同集合,连边
tmp++;
}
// debug(tmp);
ans=max(ans,tmp);
//cout<<endl;
}
cout<<"Case #"<<kase++<<": "<<ans<<endl;
}
return ;
}

2019icpc上海站 打星体验,首次感想 D K代码的更多相关文章

  1. ajax操作时用于提高用户体验的两段备用代码

    <div id="msgBoxDIV" style="position: absolute; width: 50%; padding-top: 2px; heigh ...

  2. 辛星笔记之高质量JavaScript代码书写要点

    首先本文章是http://www.zhangxinxu.com/wordpress/?p=1173 的读书笔记,读者能够自己到鑫旭的空间去阅读原文.这里我对其进行了简化. 可维护的代码的一些要求: ( ...

  3. POJ 2449 Remmarguts' Date (SPFA + A星算法) - from lanshui_Yang

    题目大意:给你一个有向图,并给你三个数s.t 和 k ,让你求从点 s 到 点 t 的第 k 短的路径.如果第 k 短路不存在,则输出“-1” ,否则,输出第 k 短路的长度. 解题思路:这道题是一道 ...

  4. 提升Boolean和out相结合的用户体验

    在我们编写代码的过程中经常有这样的需求,比如添加一条数据,我们想要的结果是如果添加成功了就返回true,如果添加失败了就返回false,在返回false的同时携带错误信息,我们通常的做法是定义这样的方 ...

  5. Java+面向对象初学感想

    在先导课之前我未曾接触C和Python之外的语言,在大一学年的课程中,用面向过程的思想方法足以完成绝大多数课程要求,故而我也对面向对象的编程思想知之甚少,虽然多有耳闻但是对它一直没有一个正式的学习了解 ...

  6. webpack教程(一)——初体验

    首先全局安装webpack,再npm初始化一个项目,并局部安装webpack开发工具 $ npm install webpack -g npm init (项目名称) $ npm install we ...

  7. java概述和java环境按照,java开发体验

    java概述: Java的发展可以归纳如下的几个阶段. (1)第一阶段(完善期):JDK 1.0 ( 1995年推出)一JDK 1.2 (1998年推出,Java更名为Java 2): (2)第二阶段 ...

  8. 让 AI 为你写代码 - 体验 Github Copilot

    前几天在群里看到有大神分享 Copoilot AI 写代码,看了几个截图有点不敢相信自己的眼睛.今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇. 申请 现在 Copoilot 还 ...

  9. drf路由组件(4星)

    路由组件(4星) 路由Routers 对于视图集ViewSet, 我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息. REST f ...

随机推荐

  1. 【Android - 控件】之MD - RecyclerView的使用

    RecyclerView是Android 5.0新特性——Material Design中的一个控件,它将ListView.GridView整合到一起,可以使用极少的代码在ListView.GridV ...

  2. Win10无法安装.NET Framework3.5的解决办法

    诸位网友如果工作中使用WIN10遇到如图的这种问题,现将解决办法整理如下: 一.第一步就是修复系统:按“Windows+X”点击“Windows PowerShell(管理员)&命令提示符(管 ...

  3. swiper实现一个好看的轮播图

    轮播是我们在编写页面中经常遇到的模块,所以网上也会有各种有有关轮播图的插件.今天忽然间看到了swiper上一个高颜值的轮播功能,顺便做一下分享. 首先页面在head内要先引用 swiper的css 和 ...

  4. flask-简介

    什么是flask? Flask简介: Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务,在介绍Flask之前首先来聊下它和Django的联系 ...

  5. SpringBoot写一个登陆注册功能,和期间走的坑

    文章目录 前言 1. 首先介绍项目的相关技术和工具: 2. 首先创建项目 3. 项目的结构 3.1实体类: 3.2 Mapper.xml 3.3 mapper.inteface 3.4 Service ...

  6. vue使用tips

    1. native修饰符可以用来绑定原生事件 2. destroyed在列表重渲染时,销毁的列表项会调用. 3. 并不是所有的数据都适合放入vuex 4. 子组件mounted先于父组件发生. 5. ...

  7. DRF Django REST framework APIView(一)

    什么是REST? REST是一个标准,一种规范,遵循REST风格可以使开发的接口通用,便于调用者理解接口的作用. 使url更容易理解,让增删改清晰易懂,在前后端分离开发中按照这一规范能加快开发效率,减 ...

  8. 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...

  9. 输入URL到页面渲染

    输入网址回车或者刷新页面到页面传染出来的整个流程 DNS 解析 HTTP三次握手 -> TCP/IP连接 浏览器发送请求 服务器返回请求的文件 (html) 浏览器渲染 1. DNS 解析 查找 ...

  10. 洛谷 题解 P4613 【[COCI2017-2018#5] Olivander】

    我又双叒叕被包菜辣! P4613 [COCI2017-2018#5] Olivander 首先,不知道为什么这题无法提交翻译: 所以,我先放个翻译: 哈利波特在与伏地魔的战斗中损坏了他的魔杖.他决定在 ...