首页 > 其他分享 >洛谷 P1540 [NOIP2010 提高组] 机器翻译

洛谷 P1540 [NOIP2010 提高组] 机器翻译

时间:2024-08-19 14:49:18浏览次数:15  
标签:翻译 洛谷 测试点 NOIP2010 int 机器翻译 ans tower 字典

题目概括

给定 N 个整数,和一个容量为 M 的“字典”,从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进入的。

做题思路

定义一个长度为 M 的字典数组,依次遍历 N 个数,每次翻译先检索字典数组,没有的话加入字典并ans++,当字典满了,就 a[tower % M + 1] = 当前数字。

CODE

90分(第二个测试点WA):

#include<bits/stdc++.h>
using namespace std;
int a[105];
int main(){
	int tower = 0, ans = 0;
	int m, n;
	cin >> m >> n;
	for (int i = 1; i <= n; i++) {
		bool flag = 0;
		int x;
		cin >> x;
		for (int j = 1; j <= m; j++) {
			if (a[j] == x){
				flag = 1;
			}
		}
		if (!flag) {
			a[tower % m + 1] = x;
			tower++;
			ans++;
		}
	}
	cout << ans << endl; 
	return 0;
}

下载数据后发现这个测试点有零,改了一下就AC了。
AC CODE:

#include<bits/stdc++.h>
using namespace std;
int a[105];
int main(){
	memset(a, -1, sizeof(a));
	int tower = 0, ans = 0;
	int m, n;
	cin >> m >> n;
	for (int i = 1; i <= n; i++) {
		bool flag = 0;
		int x;
		cin >> x;
		for (int j = 1; j <= m; j++) {
			if (a[j] == x){
				flag = 1;
			}
		}
		if (!flag) {
			a[tower % m + 1] = x;
			tower++;
			ans++;
		}
	}
	cout << ans << endl; 
	return 0;
}

标签:翻译,洛谷,测试点,NOIP2010,int,机器翻译,ans,tower,字典
From: https://www.cnblogs.com/yang-guang-hao-AKIOI/p/18367290

相关文章

  • P1540 [NOIP2010 提高组] 机器翻译 题解
    题目概括给定N个整数,和一个容量为M的“字典”,从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进入的。做题思路定义一个长度为M的字典数组,依次遍历N个数,每次翻译先检索字典数组,没有的话加入字典并......
  • 洛谷 P5461 赦免战俘
    赦免战俘题目背景借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了!题目描述现有2n×2......
  • 洛谷 P3919 可持久化线段树 1 之主席树模板(初级)
    洛谷P3919题解传送锚点摸鱼环节【模板】可持久化线段树1(可持久化数组)题目背景UPDATE:最后一个点时间空间已经放大2021.9.18增添一组hack数据by@panyf标题即题意有了可持久化数组,便可以实现很多衍生的可持久化功能(例如:可持久化并查集)题目描述如题,你需要维护这......
  • 洛谷P1020 [NOIP1999 提高组] 导弹拦截(未完)
    传送门:P1020[NOIP1999提高组]导弹拦截题目大意:一个拦截导弹的系统,每次只能拦截高度不超过上一个的导弹求出:一个系统最多能拦截的导弹数量;要拦截所有导弹最少需要的该系统的数量。思路:第一问:一眼就是最长单调不上升子序列,朴素DP求解,复杂度为O(n^2);请参考,能过掉50%......
  • 洛谷P1983 [NOIP2013 普及组] 车站分级 题解
    思路由题可知,在一趟车次的区间内,停靠的站点的等级恒大于不停靠的站点。因此,对于每一趟车次的区间,给所有停靠的站点向所有不停靠的站点两两连有向边,然后求图中最长的路径长度,就能得到答案。实现因为可能出现重边,而且\(n\le1000\),所以在处理车次连边的时候使用邻接矩阵,再改成邻......
  • 洛谷P1083 [NOIP2012 提高组] 借教室 && 差分学习笔记
    传送门:P1083[NOIP2012提高组]借教室"八骏日行三万里,穆王何事不重来。"可惜啊,他再也没有回来……题目大意:给你每天能够租借的教室数量和几份租借申请每份申请包含租界时间(从第几天到第几天)和每天需要租借的教室数量问你能否满足所有的租借要求,如果不能,驳回一份最前......
  • 洛谷P1001题解
    洛谷P1001题解友情提示:“题目传送门”被贴在了题目编号上,请自行点击查看!主要知识点C/C++语言框架基本数据类型的定义与使用cin/cout或scanf()/prinf()的使用代码一小步,OI一大步(bushi)AC代码#include<bits/stdc++.h>typedeflonglongll; //“十年OI一场空,不开long......
  • 线段树模板,洛谷原题P3373
    线段树区间乘、加,范围求和,QWQ原题#include<bits/stdc++.h>#definePIIpair<int,int>#defineintlonglong#defineDBdoublenamespaceFastIO{ inlineintread(intMOD,int&ret){ charch=getchar();intngtv=1; if(MOD==0){while(ch<&#......
  • 洛谷P1536 村村通
    传送门:P1536村村通人间风起,四季同书。(还是一篇817的做题记录la~)题意:有好多组数据,每组数据给你m条无向边的信息(u,v);问你最少再添加多少条边就能使整张图连通。思路:首先我们要知道,一个图如果连通,边的数量最少是n-1;但是题目会出现这样一种情况:n=4,m=3;1<——>......
  • 洛谷 B3735 B3736 B3787 题解
    嘿嘿我发烧已经好了!题目目录:No.1 B3735[信息与未来2018]圣诞树No.2 B3736[信息与未来2018]最大公约数No.3 B3787[信息与未来2023]精密计时 OK,开始正文!第一题:B3735[信息与未来2018]圣诞树 题目描述圣诞树共有 nn 层,从上向下数第 11 层有 11 个......