usaco3.1.4 Contact

【USACO题库】3.1.4 Shaping Regions形成的区域 题目描述 N个不同的颜色的不透明的长方形(1 这些长方形被放置时,保证了它们的边于白纸的边缘平行。 所有的长方形都放置在白纸内,所以我们会看到不同形状的各种颜色。 坐标系统的原点(0,0)设在这张白纸的左下角,而坐标轴则平行于边缘。 INPUT FORMAT 每行输入的是放置长方形的方法。 第一行输入的是那个放在底的长方形(即白纸)。 第 1 行:A , B 和 N, 由 阅读详情

一 原题

Contact
IOI'98

The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent right from the centre of the galaxy. They wish to know if the emission is transmitted by some extraterrestrial form of intelligent life or if it is nothing but the usual heartbeat of the stars.

Help the cows to find the Truth by providing a tool to analyze bit patterns in the files they record. They are seeking bit patterns of length A through B inclusive (1 <= A <= B <= 12) that repeat themselves most often in each day's data file. They are looking for the patterns that repeat themselves most often. An input limit tells how many of the most frequent patterns to output.

Pattern occurrences may overlap, and only patterns that occur at least once are taken into account.

PROGRAM NAME: contact

INPUT FORMAT

Line 1:Three space-separated integers: A, B, N; (1 <= N ≤ 50)
Lines 2 and beyond:A sequence of as many as 200,000 characters, all 0 or 1; the characters are presented 80 per line, except potentially the last line.

SAMPLE INPUT (file contact.in)

2 4 10
01010010010001000111101100001010011001111000010010011110010000000

In this example, pattern 100 occurs 12 times, and pattern 1000 occurs 5 times. The most frequent pattern is 00, with 23 occurrences.

OUTPUT FORMAT

Lines that list the N highest frequencies (in descending order of frequency) along with the patterns that occur in those frequencies. Order those patterns by shortest-to-longest and increasing binary number for those of the same frequency. If fewer than N highest frequencies are available, print only those that are.

Print the frequency alone by itself on a line. Then print the actual patterns space separated, six to a line (unless fewer than six remain).

SAMPLE OUTPUT (file contact.out)

23
00
15
01 10
12
100
11
11 000 001
10
010
8
0100
7
0010 1001
6
111 0000
5
011 110 1000
4
0001 0011 1100


二 分析

枚举所有串,统计出现次数排序就行了。坑爹的输出要求啊。交了6次。


三 代码

运行结果:
USER: Qi Shen [maxkibb3]
TASK: contact
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 4196 KB]
   Test 2: TEST OK [0.000 secs, 4196 KB]
   Test 3: TEST OK [0.000 secs, 4196 KB]
   Test 4: TEST OK [0.011 secs, 4196 KB]
   Test 5: TEST OK [0.151 secs, 4516 KB]
   Test 6: TEST OK [0.205 secs, 4716 KB]
   Test 7: TEST OK [0.259 secs, 4716 KB]

All tests OK.

Your program ('contact') produced all correct answers! This is your submission #6 for this problem. Congratulations!


AC代码:
/*
ID:maxkibb3
LANG:C++
PROG:contact
*/

#include<iostream>
#include<fstream>
#include<cstring>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;

int a, b, n;
string s;
map<string, int> m;

struct node {
    string key;
    int val;
    bool operator < (const node &obj) const {
        if(val == obj.val) {
            if(key.length() == obj.key.length())
                return key < obj.key;
            else
                return key.length() < obj.key.length();
        }
        return val > obj.val;
    }
};
vector<node> v;

int main() {
    ifstream fin;
    fin.open("contact.in");
    ofstream fout;
    fout.open("contact.out");
    fin >> a >> b >> n;
    string line;
    while(fin >> line) {
        s = s + line;
    }
    
    for(int i = 0; i < s.length(); i++) {
        for(int j = a; j <= b; j++) {
            if(i < j - 1) break;
            string tmp = s.substr(i - j + 1, j);
            map<string, int>::iterator it = m.find(tmp);
            if(it != m.end())
                it->second++;
            else
                m.insert(make_pair(tmp, 1));
        }
    }

    map<string, int>::iterator it = m.begin();
    while(it != m.end()) {
        node new_ele;
        new_ele.key = it->first;
        new_ele.val = it->second;
        v.push_back(new_ele);
        it++;
    }
    sort(v.begin(), v.end());
    
    int cnt = 1, last_val = v[0].val, num = 1;
    fout << v[0].val << endl << v[0].key;
    for(int i = 1; i < v.size(); i++) {
        if(v[i].val == last_val) {
            num++;
            if(num % 6 != 1) fout << " ";
            fout << v[i].key;
            if(num % 6 == 0) fout << endl;
        }
        else {
            last_val = v[i].val;
            cnt++;
            if(cnt > n) {
                break;
            }
            if(num % 6 != 0) fout << endl;
            num = 1;
            fout << v[i].val << endl << v[i].key;
        }
    }
    if(num % 6 != 0) fout << endl;
    return 0;
}


【ubuntu24.04】auto remove后,重启,kernel panic ,please reboot your computer vfs unable to mount root fs Ubuntu 24.04系统在运行auto remove后出现内核恐慌(kernel panic)无法启动,显示"VFS: unable to mount root fs"错误。该问题是由于当前内核被清除导致系统无法挂载根分区。解决步骤包括:1)尝试用GRUB菜单中的旧内核启动;2)在GRUB中临时编辑启动参数;3)使用Ubuntu启动盘进行chroot修复;4)使用Boot-Repair工具一键修复。成功启动后,需要重新安装linux-generic等元包,重建initramfs并更新 阅读详情

相关推荐

ESP32S3电池电量监测实战:从分压电路到IDF组件配置(附GitHub源码)

本文详细介绍了ESP32S3电池电量监测的完整实战方案。从硬件分压电路的电阻选型、滤波设计,到软件层面利用ESP-IDF的ADC校准机制提升精度,并重点讲解了如何集成bat_monitor开源组件快速实现电压采集、电量计算、充电检测与事件通知。文章提供了从原理到调试的完整指南和GitHub源码,帮助开发者构建稳定可靠的物联网设备电源管理系统。

ee345的博客 530

【模拟】【USACO】contact

<br /> <br />The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent right from the centre of the galaxy. They wish to know if the emissi

liveas的专栏 1676

OTP/EEPROM 读取与处理

Camera OTP/EEPROM 读取与处理 文章目录Camera OTP/EEPROM 读取与处理1. OTP概念1.1 基本概念1.2 OTP存储类型1.3 OTP烧录信息类型1.4 OTP 作用2. 配置准备2.1 基本认识2.2 OTP/EEPROM配置3. OTP/EEPROM datasheet理解 以及 读取方式3.1 data sheet 内容3.2 一般OTP/EEPROM(e...

Understand-image 1万+

3.1.5 Contact

ContactIOI'98 The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent right from...

weixin_30725467的博客 1604

浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

迪杰斯特拉(Dijkstra)算法和A*算法的原理及实现。

Guo_Zhanyu 9598

PX4|Gazebo模型加载失败排查指南:从环境变量到资源路径的全面解析

本文针对PX4与Gazebo联合仿真中常见的'Unable to get model name'错误,提供了从环境变量配置、资源路径排查到网络访问问题的全面解决方案。详细解析了GZ_SIM_RESOURCE_PATH等关键变量的作用与设置方法,并给出了离线模型库部署等一劳永逸的修复指南,帮助开发者彻底解决无人机模型加载失败问题。

weixin_29243063的博客 1228

USACO 3.1.4 Shaping Regions

比较经典的一道题目了。 我这次用的是漂浮法,从最后一个矩形开始做,每次都把新进来的矩形压到最底层,一层一层往上浮,并检查剩下那些部分即可。 用空学一下离散化+线段树+扫面线,还没写过~ /* PROG:rect1 LANG:C++ */ #include const int N = 1001; int l[N], r[N], b[N], t[N], c[N], sum[3000

IcEternal 540

MDT部署实战:除了Office,这些“装机必备”软件也能一键静默安装(含静默参数)

本文详细介绍了如何利用Microsoft Deployment Toolkit(MDT)实现企业级软件的静默安装,包括浏览器、开发工具和系统增强工具等“装机必备”软件的部署方案。通过命令行参数和MSI属性,IT运维团队可以高效构建标准化工作环境,提升部署效率并确保版本一致性。文章还提供了安装顺序控制、结果验证和常见问题排错等高级技巧。

weixin_26985923的博客 172

USACO Section 3.1 Contact (contact)

Contact IOI'98 The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent ri...

weixin_30954265的博客 2994

保姆级教程:在Windows 10/11上安装配置KNIME 5.8.0(含中文文本库更新)

本文提供在Windows 10/11系统上安装配置KNIME 5.8.0的详细指南,包括中文文本库更新和性能优化方案。从环境准备、安装流程到中文文本处理能力强化,逐步指导用户搭建高效的数据分析环境,特别针对国内网络环境和中文用户需求提供实用解决方案。

weixin_29081101的博客 669

【嵌入式面经】上海 70迈 线上笔试

“关注|点赞|收藏” 福利干货第一时间送达!最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!

qq_56921854的博客 1137

Contact (contact)[USACO 3.1.4]

算法:枚举 分析:其实是对统计数字的一个强化版本,由原先的统计数字改成了字符串,而且还需要枚举一下,给所有出现过的字符串快排,之后再进行比较一遍即可AC! 思考:USACO的数据神马的最坑爹了~ { ID:1011mashuo PROG:contact L

261

建设银行核心系统建设历程全网最详细记录

中国建设银行核心系统数字化转型之路 摘要:中国建设银行自1954年成立以来,其核心系统经历了从分散到集中、再到分布式架构的演进历程。2002-2005年完成的数据大集中工程(DCC)实现了全行业务统一管理,2010年启动的"新一代核心系统"构建了企业级架构,率先实现"一次研发,全行共享"。2020年起全面推进主机下移战略,通过分布式架构改造,攻克八大关键技术难题,于2024年7月完成境内外全量核心业务下移,日均同步数据8亿条,实现金融核心系统完全自主可控。这一转型不仅

银行信息系统应用架构详解 4872

USACO3.1.4 Contact (contact)

略水。 枚举长度l从a到b,找出字符串中所有长度为l的字串然后用map记录,排序输出。/* ID:shijiey1 PROG:contact LANG:C++ */ #include #include #include #include #include #include #include using namespace std; struct Num { string nu

Shion的专栏 1121

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[usaco3.1.4]contact

  简单一个暴搜就能过了,但是我的双关键字快排我也是醉了(用c++的sort不会写双关键字排序,只好自己写,可是写得特别拙),代码混乱(看来我应该分开一个个函数写的) /* ID:abc31261 LANG:C++ TASK:contact */ #include<cstdio> #include<cstring> #include<map&gt...

weixin_30879169的博客 867

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

usaco 3.1 Contact

//usaco 3.1 Contact /* 由于1<=A,B<=12 所以二进制字符串转换为十进制也就是0-4048而已 由于0 和 00 等不同0值转换出来的十进制是一样的,所以在所有字符串子串的头部加上1之后再转换 即原子串000,1011和00.看做1000,11011和100来看待 转换为十进制后作为下标映射到整型数组上累加 liweijie 2013/4/11 */ #include

LiWeiJie的专栏 755

USACO3.1.5 Contact 联系(枚举)

Description 奶牛们开始对用电波望远镜扫描牧场外的宇宙感兴趣。最近,他们注意到了一种非常奇怪的脉冲调制微波被从星系的中央发射出来。他们希望知道电波是否是被某些地外生命发射出来的,还是仅仅是普通的的星星的心跳。 帮助奶牛们用一个能够分析他们在文件中记下的记录的工具来找到真相。他们在寻找长度在A到B之间(含)在每天的数据文件中重复得最多的比特序列 (1 &amp;lt;= A &amp;lt;= B &amp;lt...

bestsort 1175

USACO Training Section 3.1 Contact

P2724 联系 Contact 题目背景 奶牛们开始对用射电望远镜扫描牧场外的宇宙感兴趣。最近,他们注意到了一种非常奇怪的脉冲调制微波从星系的中央发射出来。他们希望知道电波是否是被某些地外生命发射出来的,还是仅仅是普通的的星星发出的 题目描述 帮助奶牛们用一个能够分析他们在文件中记下的记录的工具来找到真相。他们在寻找长度在A到B之间(包含A和B本身)在每天的数据文件...

dianyi2475的博客 1269

USACO 3.1 Contact

1 /* 2 PROG: contact 3 ID: jiafeim1 4 LANG: C++ 5 */ 6 #include <algorithm> 7 #include <iostream> 8 #include <fstream> 9 #include <string>10 #include <map>11 ...

weixin_30443747的博客 576

USACO Contact IOI’98 TLE

毕设的东西做不下了,做点其他东西调节一下,翻出USACO Trainning继续做,到Contact这道题了,光荣地挂在了第7组数据了,写的稍微有点暴力,过段时间再把它过掉吧。 题意是这样的,有一个01串,长度200,000,有1<=A,B<=12,1<=N<=50,求的是串中长度在A,B之间的子串出现次数的统计问题。 想了个最糟糕情况为12*200000=2.4*10...

weixin_30649859的博客 610

USACO Contact,难题,运算符重载,QuickSort,

我感觉是到目前为止最难的一题 参考消逝者的代码:http://www.nocow.cn/index.php/Code:USACO/contact/C%2B%2B 参考思路:http://www.nocow.cn/index.php/USACO/contact#.E7.AE.80.E6.98.93.E4.BD.86.E9.9D.9E.E5.B8.B8.E9.AB.98.E6.95.88.E7.9

1160

USACO Section 3.1 Contact(map)

ContactIOI'98 The cows have developed a new interest in scanning the universe outside their farm with radiotelescopes. Recently, they noticed a very curious microwave pulsing emission sent right...

angtongyou1893的博客 1080

[USACO3.1.5 Contact]

[题目来源]:USACO 3.1.5 [关键字]:字典树 [题目大意]:求一个给定的字符串中,所有长度在a和b之间的所有子串的出现次数。并按要求输出最高的n个频率和在此频率下的所有子串。 //=====================================================================================================...

weixin_30553777的博客 303
上一篇: usaco3.1.3 Humble Numbers
下一篇: usaco3.1.5 Stamps
max_kibble
博客等级 码龄11年 2粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值