入门OJ 4242: [Noip模拟题]删除

题目

Description

Alice上化学课时又分心了,他首先画了一个3N列的表格,然后把数字1N填入表格的第一行,保证每个数只出现一次,另外两行他也填入数字1N,但不限制每个数字的出现次数。Alice现在想删除若干列使得每一行排完序后完全一样,编程计算最少需要删除多少列。

Input

第一行包含一个整数N(1<=N<=100000),表示表格的列数。

接下来三行每行包含N个整数,每个数在1N之间,而且第一行的数互不相同。

Output

输出最少需要删除的列数。

题解

水题

每次找第一行中第二行第三行没有的删掉

当枚举一遍没有删除时输出答案

代码

#include <cstdio>
using namespace std;
int n, row1[100010], row2[100010], row3[100010], count2[100010], count3[100010], tmp, ans;
int main(int argc, char **argv) {
  scanf("%d", &n);
  for (register int i(0); i < n; ++i) {
    scanf("%d", &row1[i]);
  }
  for (register int i(0); i < n; ++i) {
    scanf("%d", &row2[i]), ++count2[row2[i]];
  }
  for (register int i(0); i < n; ++i) {
    scanf("%d", &row3[i]), ++count3[row3[i]];
  }
  register int finish_flag(0);
  while (!finish_flag) {
    finish_flag = 1;
    for (register int i(0); i < n; ++i) {
      if (row1[i] && !(count2[row1[i]] && count3[row1[i]])) {
        finish_flag = 0;
        ++ans;
        row1[i] = 0;
        --count2[row2[i]], --count3[row3[i]];
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}

原文地址:https://www.cnblogs.com/forth/p/9532957.html

时间: 2024-10-17 15:37:44

入门OJ 4242: [Noip模拟题]删除的相关文章

[BZOJ入门OJ2092][Noip模拟题]舞会

2092: [Noip模拟题]舞会 Time Limit: 20 Sec  Memory Limit: 256 MB Submit: 9  Solved: 5 [Submit][Status][Web Board] Description 学校举行舞会啦,一共有N个人参加,所有人站成一排,从左开始编号,最左边的人编号为1 ,最右边的为N.每个人跳舞的熟练度我们用一个整数表示,第i个人的熟练度为Ai,每次熟 练度最接近的一对相邻男女会出列跳舞,如果有多对那么最左边的那一对会先出列,请你给 出出列跳

8.22 NOIP 模拟题

  8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc 4.9.2 fpc 2.6.2 评测环境 64 位 Linux, 3.3GHZ CPU 评测软件 Lemon 评测方式 忽略行末空格和回车 特别注意:c/c++ 选手使用 printf 输出 64 位整数请使用%lld 1 注意事项 A 债务 文件名                            输入文件             输出文件  

noip模拟题题解集

最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数 输入:输入文件只一行,两个正整数N,M( 1<N<50,2≤M≤5) 输出:输出文件只有一个正整数S,表示方案总数. 运用升格思想.设N个坑不会发生爆炸的方案数是f[N],那么我们假设N以前的坑的方案 都已知了,那么我们只需要考虑第N个坑如何放即可(顺

入门OJ 4192: [Noip模拟题]黑魔法师之门

题目 Description applepi被囚禁的地点只有一扇门,当地人称它为"黑魔法师之门".这扇门上画着一张无向无权图,而打开这扇门的密码就是图中[每个点的度数大于零且都是偶数]的子图的个数对1000000009取模的值.此处子图 (V, E) 定义为:点集V和边集E都是原图的任意子集,其中E中的边的端点都在V中.但是Vani认为这样的密码过于简单,因此门上的图是动态的.起初图中只有N个顶点而没有边.Vani建造的门控系统共操作M次,每次往图中添加一条边.你必须在每次操作后都填写

入门OJ 4246: [Noip模拟题]中位数

题目 Description 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b. 中位数是指把所有元素从小到大排列后,位于中间的数. Input 第一行为两个正整数n(n<=100000)和b(1<=b<=n),第二行为1~n 的排列. Output 输出一个整数,即中位数为b的连续子序列个数. Sample Input 7 4 5 7 2 4 3 1 6 Sample Output 4 样例解释:{4}, {7,2,4}, {5,7,2,4,3}和{5,7,2

6.19 noip模拟题(题目及解析转自 hzwer 2014-3-15 NOIP模拟赛)

Problem 1 高级打字机(type.cpp/c/pas) [题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x.(type操作) 2.U x:撤销最后的x次修改操作.(Undo操作) (注意Query操作并不算修改操作) 3.Q x:询问当前文章中第x个字母并输出.(Query操作) 文章一开始可以视为空串. [输入格式] 第1行:一个整数n,表

9.22 NOIP模拟题

吉林省信息学奥赛 2017 冬令营                                                                                                                                                                                                      day2 嗯 今天题目好水 嗯 今天爆零了好伤心...... 值得纪念

【noip模拟题】天神下凡(贪心)

vijos某次模拟赛原题... 处理出每个圆的一级祖先就行了... 其实没有那么麻烦,贪心即可出解. 我们将每个圆转换成线段后按左端点小右端点大的方法排序 然后维护一个栈: 对于每一个圆i 如果栈顶右端点比圆i的右端点小,则出栈,直到栈空 否则i的一级祖先就是栈顶,并且加入i到栈. 证明: 因为左端点排序,所以问题转换为找一个最小的右端点能够包含此线段 假如栈顶的右端点比当前右端点小,显然对于所有将来的线段,不可能包含将来的线段(或者说,尽管能,也不是最优解,因为最优解就是当前i) 然后如果有n

【noip模拟题】挖掘机(模拟题+精度)

这题直接模拟. 可是我挂在了最后两个点上QAQ.唯一注意的是注意精度啊...用来double后边转成整数就忘记用longlong...sad #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #include <queue> #include <