做的时候觉得这套题好简单,结果一看发现是2012年的模拟题,估计就是普及+的难度吧,AK无压力

总结

  1. 第一题状压我智障的调了好几分钟,因为我的最终状态写的1<<n,智障了
  2. 第三题的dfs调了一会,也是有点难受的
  3. 吸取之前的教训,把开文件模板化了,方便检查

混乱的队伍

状压DP,注意开long long

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <set>
#include <ctime>
#include <cmath>
using namespace std;#define rep(i,s,t) for(int i=(int)(s);i<=(int)(t);++i)
#define forn(i,n) for(int i=1;i<=(int)(n);++i)
#define pb push_back
#define seta(h, x) memset(h, x, sizeof(h))
#define fr first
#define sc second
typedef long long qword;
const int maxn = 20;
const string task = "mixup2";qword f[1<<maxn][maxn];
int s[maxn];#define OKint main() {
#ifdef OKfreopen((task + ".in").data(),"r",stdin);freopen((task + ".out").data(),"w",stdout);ios::sync_with_stdio(0);
#endif // OKint N, K;cin >> N >> K;forn(i, N) cin >> s[i];forn(i, N) f[1<<(i-1)][i] = 1; // Initint LastSituation = (1<<N) - 1;forn(i, LastSituation) {forn(j, N) {if (i & (1 << (j-1))) {forn(next, N) {if (abs(s[next] - s[j]) > K && (!(i & (1 << (next - 1))))) {f[i|(1<<(next-1))][next] += f[i][j];}}}}}qword ans = 0;rep(i,1,N)ans += f[LastSituation][i];cout << ans << endl;
}

安慰员工

这套题裸地最小生成树.
给定边的选择和出发点之后,原来的图实际上变成了一个有根树,最优路径是从根出发的Euler回路(每条边都经过两次)
一个有\(K\)个孩子的节点在Euler回路中出现了\(K+1\)次。除了根以外的其他节点,\(K+1\) 恰好是这个节点在树中的度。这就是说,度为 \(D\)的节点被访问了 \(D\) 次,根节点
要多被访问依次。这里,每一个边都被遍历了两次,每个方向各一次。我们还可以发现,计算一个点的花费\(D_i\)次等价于在连接它的每条边上计算一次。所以如果我们重
新定义边的花费的话,那么问题就转化为了求最小生成树了

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <set>
#include <ctime>
#include <cmath>
using namespace std;#define rep(i,s,t) for(int i=(int)(s);i<=(int)(t);++i)
#define forn(i,n) for(int i=1;i<=(int)(n);++i)
#define pb push_back
#define seta(h, x) memset(h, x, sizeof(h))
#define fr first
#define sc second
typedef long long qword;
const int maxn = 100010;
const string task = "cheer";
int c[maxn], r[maxn];
int val[maxn];
int from[maxn], to[maxn];
int fa[maxn];bool cmp(const int& x, const int& y) {return val[x] < val[y];
}int getRoot(int x) {return fa[x] == x ? x : fa[x] = getRoot(fa[x]);
}int main() {
#ifndef Debugfreopen((task + ".in").data(),"r",stdin);freopen((task + ".out").data(),"w",stdout);
#endif // Debugint n, m;cin >> n >> m;qword ans = 0x7fffffff;forn(i, n) {cin >> c[i], fa[i] = i; ans = min(c[i], (int)ans);}int k;forn(i, m) {cin >> from[i] >> to[i] >> k;val[i] = 1ll * k * 2 + c[from[i]] + c[to[i]];r[i] = i;}sort(r + 1, r + 1 + m, cmp);forn(i, m) {int fo = from[r[i]], t = to[r[i]];int uu = getRoot(fo), tt = getRoot(t);qword ww = val[r[i]];if (tt != uu) {fa[tt] = uu;ans += ww;}}cout << ans << endl;
}

齿轮

裸地DFS
这是一个图论问题,图中的点表示齿轮,两个点之间有边当且仅当两个齿轮相互接触。我们知道从驱动齿轮到最终工作齿轮有唯一路径,我们需要找到路径,并且算出路径上所有齿轮的速度。我们从驱动齿轮出发,使用 BFS 或者 DFS,并在搜索过程中计算齿轮速度即可。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <set>
#include <ctime>
#include <cmath>
using namespace std;#define rep(i,s,t) for(int i=(int)(s);i<=(int)(t);++i)
#define forn(i,n) for(int i=1;i<=(int)(n);++i)
#define pb push_back
#define seta(h, x) memset(h, x, sizeof(h))
#define fr first
#define sc second#define N 1110struct edge{double x, y, r, w;
}s[N];bool flag;
int book[N], n;
double tx, ty;bool judge(edge a, edge b) {double R = (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);if(R == (a.r+b.r)*(a.r+b.r)) return true;return false;
}void dfs(double sum, int k) {if(flag) return ;if(s[k].x == tx && s[k].y == ty){printf("%d\n", (int)sum);flag = true;return ;}for(int i = 0; i < n; i++){if(!book[i] && judge(s[i], s[k])){book[i] = 1;s[i].w = s[k].w*s[k].r/s[i].r;dfs(sum+s[i].w, i);book[i] = 0;}}
}const string name = "baler";int main() {
#ifndef OKfreopen((name + ".in").data(), "r",stdin);freopen((name + ".out").data(), "w",stdout);
#endif // OKint  i, j, k;seta(book, 0);scanf("%d%lf%lf", &n, &tx, &ty);for(i = 0; i < n; i++){s[i].w = 0;scanf("%lf%lf%lf", &s[i].x, &s[i].y, &s[i].r);if(!s[i].x && !s[i].y) j = i;}s[j].w = 10000;flag = false;book[j] = 1;dfs(10000, j);return 0;
}

转载于:https://www.cnblogs.com/Alessandro/p/9591233.html

2012NOIP模拟试题相关推荐

  1. 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)

    2015计算机三级考试pc技术模拟试题及答案(八) 1.关于Windows 98中的网上邻居的相关叙,( )是错误的. A.通过网上邻居可以游览和使用网上的全部计算机资源 B.通过网上邻居可以浏览网上 ...

  2. 微型计算机组成原理考试,全国高等教育自学考试计算机组成原理模拟试题

    第一部分 选择题(共15分) 一.单项选择题(本大题共15小题,每小题1分,共15分.在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无分.) 1. ...

  3. 计算机一级在线模拟试题,计算机一级模拟试题带答案

    计算机一级模拟试题带答案 计算机考试分为四个等级,不同等级的内容不同,那么百分网小编为大家提供的是关于计算机一级的模拟考试题,希望能为各位考生的复习提供帮助! 一.判断正误题,正确填A,错误填B(共2 ...

  4. 计算机一级考模拟试题,计算机一级MSOffice考前模拟试题「附答案」

    计算机一级MSOffice考前模拟试题「附答案」 一级分为DOS版和Windows版,考核应试者计算机基本知识和使用微机系统的初步能力.那么计算机一级MSOffice考试会怎么考?以下仅供参考! 1) ...

  5. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...

    唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...

  6. 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)

    [导语]2020年军队文职备考进行中,为助力各位考生做好2020年军队文职招聘考试准备,山东中公教育小编为大家整理了考试题库:2020军队文职人员考试:计算机基础模拟试题(1),供大家学习和参考. 1 ...

  7. 计算机一级考试试题 文明,XP计算机文明基础模拟试题库1.doc

    XP计算机文明基础模拟试题库1 XP版计算机文化基础试题库 序号题目答案面向特定专业应用领域(如图形.图像处理等)使用的计算机一般是( ) A.A.D在有关计算机软件.程序.文档的描述中,下面不正确的 ...

  8. 固定在计算机主机箱体上,联结计算机各种部件,起桥梁作用的是,2014年12月计算机应用基础模拟试题...

    2014年12月份计算机应用基础统考模拟试题 一.单项选择题 1. 世界上第一台电子数字计算机采用的电子器件是(c ) A.大规模集成电路 B 集成电路 C 晶体管 D 电子管 2.下列说法中,正确的 ...

  9. 单招计算机应用基础试题及答案,对口单招计算机应用基础模拟试题

    遵循陕西省对口单招说明 职大班计算机对口单招模拟试题 满分 100分 时间 150分钟 一.单选题 1.解释程序的功能是______. A.解释执行高级语言程序 B.将高级语言程序翻译成目标程序 C. ...

  10. 对于计算机系统结构 下列,计算机系统结构模拟试题

    计算机系统结构模拟试题 计算机系统结构模拟试题 模拟试题一 一.简答题(40分) 1.什么是透明性概念?对于计算机系统结构,下列哪些是透明的?哪些是不透明的? 存贮器的模m交叉存取:浮点数数据表示:I ...

最新文章

  1. html溢出攻击,溢出(漏洞)攻击的实现及防御
  2. 华为笔试题---明明的随机数
  3. Flash Builder 4 安装ANT插件
  4. 帝国CMS的phomenewspic/ecmsinfo标签详解
  5. Python教程:列表推导式和嵌套的列表推导式讲解
  6. Daily Scrum4 11.6
  7. 本地缓存到分布式缓存( Guava, Caffeine, Memcached, Redis)
  8. HTML5基础网页设计(加代码CSS)
  9. linux输入法状态栏消失,隐藏 fcitx 输入法的状态栏
  10. Python+Pid实现车辆速度跟踪
  11. JSP不同情况下中文乱码解决问题
  12. Java使用apache的poi将PPT转PDF文件,支持并兼容PPT和PPTX文件
  13. 没有任何借口——提升职场能力的文章
  14. CHIA币的本质认识
  15. python中利用ARIMA模型对时间序列问题进行预测(以洗发水销售预测为例)
  16. 相关系数pearson、spearman、kendall和R语言中的cor/or.test()
  17. 详解视频封装格式之MP4
  18. 虎牙直播弹幕抓取 相关资料整理
  19. C 生化危机 SDUT
  20. phpMyAdmin - 配置文件权限错误,不应任何用户都能修改!

热门文章

  1. JDBC08时间处理
  2. js中定义变量的符号
  3. java图片工具类_Java 下载图片下载文件 工具类
  4. php多次登录失败,PHPCMS登录后台失败次数过多解决办法
  5. 十、Oracle学习笔记:基本查询语句各子句用法
  6. MySQL学习(五、数据操作语言DML和事务处理语言TCL)
  7. CentOS 6.5 中安装Jenkins
  8. java static final泛型类对象
  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_5_综合案例_文件搜索...
  10. Study 7 —— CSS美化背景和边框