该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

bool finish, hash[256], used[27];

int n, stk[27];

string a, b, c;

string word;

void init() {

fin >> n >> a >> b >> c;

finish = false;

}

void outsol() {

int i, ans[27];

for (i = 0; i

ans[word[i] - 65] = stk[i];

fout <

for (i = 1; i

fout <

fout <

finish = true;

}

void addup(char ch) {

if (!hash[ch]) {

hash[ch] = true;

word = word + ch;

}

}

string change(string str, char x, char y) {

for (int i = 0; i

if (str[i] == x)

str[i] = y;

return str;

}

void pre_doing() {

word = "";

memset(hash, 0, sizeof(hash));

for (int i = n - 1; i >= 0; i --) {

addup(a[i]); addup(b[i]); addup(c[i]);

}

memset(used, 0, sizeof(used));

}

bool bad() {

int p, g = 0;

for (int i = n - 1; i >= 0; i --) {

if (a[i] >= n || b[i] >= n || c[i] >= n) return false;

p = a[i] + b[i] + g;

if (p % n != c[i]) return true;

g = p / n;

p %= n;

}

return false;

}

bool modcheck() {

int i, p, p1, p2, g = 0;

//a + b = c, all know

for (i = n - 1; i >= 0; i --) {

if (a[i] >= n || b[i] >= n || c[i] >= n) continue;

p = (a[i] + b[i]) % n;

if (!(p == c[i] || (p + 1) % n == c[i])) return true;

}

//a + ? = c

for (i = n - 1; i >= 0; i --) {

if (!(a[i] = n)) continue;

p1 = (c[i] - a[i] + n) % n;

p2 = (p1 - 1) % n;

if (used[p1] && used[p2]) return true;

}

//? + b = c

for (i = n - 1; i >= 0; i --) {

if (!(a[i] >= n && c[i]

p1 = (c[i] - b[i] + n) % n;

p2 = (p1 - 1) % n;

if (used[p1] && used[p2]) return true;

}

//a + b = ?

for (i = n - 1; i >= 0; i --) {

if (!(a[i] = n)) continue;

p1 = (a[i] + b[i]) % n;

p2 = (p1 + 1) % n;

if (used[p1] && used[p2]) return true;

}

return false;

}

void dfs(int l) {

int i;

string A, B, C;

if (finish) return;

if (bad()) return;

if (modcheck()) return;

if (l == n) {

outsol();

return;

}

for (i = n - 1; i >= 0; i --)

if (!used[i]) {

used[i] = true; A = a; B = b; C = c;

a = change(A, word[l], i);

b = change(B, word[l], i);

c = change(C, word[l], i);

stk[l] = i;

dfs(l + 1);

used[i] = false; a = A; b = B; c = C;

}

}

int main() {

init();

pre_doing();

dfs(0);

return 0;

}

搜索题的框架往往不难找到,关键就是在搜索的优化上,本文的主要篇幅也就是讨论了几种有效的优化。搜索问题的优化更多的需要选手的经验和思考、分析问题的能力,所以搜索剪枝也是竞赛中经久不衰的经典问题�

noi题库c语言 1.5答案,NOIP2004提高组复赛试题答案c语言版相关推荐

  1. NOI题库 scratch题解(部分)

    1.3编程基础之算术表达式与顺序执行 01 A+B问题 1.3编程基础之算术表达式与顺序执行 01 A+B问题_dllglvzhenfeng的博客-CSDN博客 1.3编程基础之算术表达式与顺序执行 ...

  2. NOI题库 python题解-2022.01.07整理(1.4-1.7)

    python && C++ NOI编程题解1.4 https://blog.csdn.net/yigezzchengxuyuan/article/details/86651658 ht ...

  3. OpenJudge NOI题库 1.1 编程基础之输入输出

    OpenJudge NOI题库 1.1编程基础之输入输出 OpenJudge - OpenJudge - 题目 1.1_01:Hello, World!_2017-03-19(C++语言) 1.1_0 ...

  4. OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支

    OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支 OpenJudge - OpenJudge - 题目 啊哈C语言 第11讲 4.1.4_01判断数正负 啊哈C语言 第11讲 4 ...

  5. OpenJudge NOI题库 1.5编程基础之循环控制

    OpenJudge NOI题库 1.5编程基础之循环控制 OpenJudge - OpenJudge - 题目 1.5_01求平均年龄 1.5_01求平均年龄_哔哩哔哩_bilibili 1.5_02 ...

  6. noi题库1010. 邮寄包裹

    noi题库1010. 邮寄包裹 题目描述 某邮局对邮寄包裹有如下规定:若包裹的重量超过30千克,不予邮寄,对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的结果: 重量(千克) 收 ...

  7. noi题库1005. 存款收益

    noi题库1005. 存款收益 题目描述 按年利率R%存入本钱X,存入P年后的本利合计为Y=X*((100+R)/100)^P,求Y的值. 输入 输入一行三个空格隔开的实数R,X,P 输出 输出收益Y ...

  8. NOI题库 python题解-2022.01.07整理(1.1-1.3)

    python && C++ NOI编程题解1.1 https://blog.csdn.net/yigezzchengxuyuan/article/details/86582640 ht ...

  9. NOI题库 7654 等差数列末项计算

    http://noi.openjudge.cn/math/7654/ /* NOI题库 7654 等差数列末项计算 http://noi.openjudge.cn/math/7654/ */ #inc ...

最新文章

  1. 图像分割2020总结:结构,损失函数,数据集和框架
  2. 来自褪墨:个人回顾与展望/2011年的回顾和对2012年的计划
  3. 好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
  4. ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
  5. Cookie 详解
  6. JQuery中常用方法备忘
  7. Vue2.5.1+Spring支持分销、团购、秒杀、优惠券、微信商城项目,源码免费分享
  8. 单片机课设中期报告_本科毕业设计中期检查报告.doc
  9. Latex排版技巧:输入罗马数字
  10. PageAdmin CMS网站建设教程:自定义字段如何关联栏目表
  11. 硬科技驱动西咸新区发展新引擎
  12. 7.ratings评价列表页的实现
  13. Android之按钮点击事件——显示图片隐藏图片
  14. 一日一命令:find 命令详解
  15. Silverlight Tools 3 安装时发生严重错误
  16. 添加了validaterequest=false 为什么还是报错
  17. MySql项目查询优化经验总结
  18. OSPF虚链接的基本配置
  19. 2018 世界杯:科技辅助裁判是否靠谱?
  20. 云来创始人谌鹏飞受邀中国连锁业O2O大会演讲《极速·连接》

热门文章

  1. Excel表格规范录入数据
  2. Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a19_DS18B20_LCD1602
  3. 物联网传感器61个应用领域
  4. 简易搭建ftp服务器
  5. 【蓝桥杯】【python】数字三角形
  6. office 2016 for Mac打开时 出现隐藏模块中出现编译错误: link
  7. 胖虎技术群Java后端的良师
  8. VS 2015 更换exe的图标
  9. 数据库 | Mysql - [索引]
  10. 大数据就业前景怎么样?