数列转换

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描写叙述

有一个数列a1,a2,a3...an,每次能够从中随意选三个相邻的数ai-1 ,a,
ai+1 ,进行例如以下操作(此操作称为“对ai进行操作”)

(ai-1,ai,ai+1)->(ai-1+ai,-ai,ai+ai+1)

给定初始和目标序列。能否通过以上操作。将初始序列转换成为目标序列?比如。初始序列(1 6 9 4 2 0)目标序列(7 -6 19 2 -6 6)可经过例如以下操作:

(1 6 9 4 2 0)->( 1 6 13 -4 6 0)->(1 6 13 2 -6 6)->(7 -6 19 2 -6 6)

请你推断给定的初始状态和目标状态,输出Yes(可以转换)或No(不能转换)

输入
第一行是一个正整数N,表示測试数据的组数。(N<=100)

每组測试数据的第一行是一个整数M(3<=M<=1000),表示该组測试数据的起始状态与结束状态都有M个数。

每组測试数据的第二行是M个整数Ai(-1000<=Ai<=1000)。表示起始状态。

每组測试数据的第三行是M个整数Bi(-1000<=Bi<=1000),表示终止状态。

输出
假设可以转换。输出Yes

假设不能转换。输出No
例子输入
  1. 2
  2. 3
  3. 1 2 3
  4. 1 3 2
  5. 6
  6. 1 6 9 4 2 0
  7. 7 -6 19 2 -6 6
例子输出
  1. No
  2. Yes
来源
《世界大学生程序设计竞赛高级教程·第一冊》
上传者
张云聪

题解:假设用暴力模拟出全部结果然后再比較的话非常easy超时,并且编程复杂度高。可是在网上看到了一个非常奇妙的守恒法,不是在细节上关注这些变化。而是从总体上看到某些不变的东西,用S[i]表示A[0...i]的和,当对A[i]进行变化的时候。直接结果是S[i]和S[i-1]交换了位置。所以为题就转换成了求S数组,排序。然后比較两个S数组是否相等。

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <algorithm>
  4.  
  5. #define maxn 1010
  6.  
  7. int A[maxn], B[maxn];
  8.  
  9. int main() {
  10. int t, n, i;
  11. scanf("%d", &t);
  12. while(t--) {
  13. scanf("%d", &n);
  14. for(i = 0; i < n; ++i) {
  15. scanf("%d", &A[i]);
  16. if(i) A[i] += A[i-1];
  17. }
  18. for(i = 0; i < n; ++i) {
  19. scanf("%d", &B[i]);
  20. if(i) B[i] += B[i-1];
  21. }
  22. std::sort(A, A + n);
  23. std::sort(B, B + n);
  24. if(std::equal(A, A + n, B))
  25. printf("Yes\n");
  26. else printf("No\n");
  27. }
  28. return 0;
  29. }

NYOJ109 数列转换 【守恒法】的更多相关文章

  1. NYOJ-109 数列转换 AC 分类: NYOJ 2014-12-01 00:54 84人阅读 评论(0) 收藏

    守恒法的问题,表示,刚刚看了一点点 #include <iostream> #include <cstring> #include <cstdio> #includ ...

  2. 剑指Offer的学习笔记(C#篇)-- 斐波那契数列

    题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). 一 . 理解概念 斐波那契数列概念:斐波那契数列(Fibonacci sequence), ...

  3. ACM/IOI 历年国家集训队论文集和论文算法分类整理

    国家集训队1999论文集 陈宏:<数据结构的选择与算法效率--从IOI98试题PICTURE谈起> 来煜坤:<把握本质,灵活运用--动态规划的深入探讨> 齐鑫:<搜索方法 ...

  4. ACM/IOI 国家队集训队论文集锦

    转自:https://blog.csdn.net/txl199106/article/details/49227067 国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98 ...

  5. [转] ACM中国国家集训队论文集目录(1999-2009)

    国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98试题PICTURE谈起>来煜坤:<把握本质,灵活运用——动态规划的深入探讨>齐鑫:<搜索方法中的 ...

  6. NOI 国家集训队论文集

    鉴于大家都在找这些神牛的论文.我就转载了这篇论文合集 国家集训队论文分类 组合数学 计数与统计 2001 - 符文杰:<Pólya原理及其应用> 2003 - 许智磊:<浅谈补集转化 ...

  7. Round 0: Regionals 2010 :: NEERC Eastern Subregional

    Round 0: Regionals 2010 :: NEERC Eastern Subregional 贴吧题解(官方)? 网上的题解 水 A Murphy's Law 题意:Anka拿着一块涂着黄 ...

  8. Anti-pattern

    https://en.wikipedia.org/wiki/Anti-pattern https://zh.wikipedia.org/wiki/反面模式 An anti-pattern is a c ...

  9. Anti-pattern(反面模式)

    转自维基百科 http://zh.wikipedia.org/wiki/%E5%8F%8D%E9%9D%A2%E6%A8%A1%E5%BC%8F 在软件工程中,一个反面模式(anti-pattern或 ...

随机推荐

  1. Spring事务Transaction配置的五种注入方式详解

    Spring事务Transaction配置的五种注入方式详解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学 ...

  2. mac tree命令

    mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如显示当前目录的 tree 的命令: $ find . -print | sed -e 's;[^/]*/;| ...

  3. oh my zsh命令

    打开某个文件夹地址,输入 cdf   命令,会自动进入这个文件夹命令行 open ./      打开当前命令行所在目录的文件夹

  4. Unity3d插件推荐

    2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...

  5. 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求

    具体设置如下: 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Setti ...

  6. POJ 2112 Optimal Milking (Floyd+二分+最大流)

    [题意]有K台挤奶机,C头奶牛,在奶牛和机器间有一组长度不同的路,每台机器每天最多能为M头奶牛挤奶.现在要寻找一个方案,安排每头奶牛到某台机器挤奶,使得C头奶牛中走过的路径长度的和的最大值最小. 挺好 ...

  7. 在ubuntu14.04上编译android4.2.2系统

    原创作品,转载请注明出处,严禁非法转载             copyright:weishusheng   2015.8.1 时下android系统非常流行,下面就来说一下,下载编译一个andro ...

  8. UVA 1637 Double Patience

    题意:36张扑克,平分成9摞,两张数字一样的可以拿走,每次随机拿两张,问能拿光的概率. 解法:记忆化搜索,状态压缩.一开始我想在还没拿的时候概率是1,然后往全拿光推···样例过不去···后来觉得推反了 ...

  9. Spring @Resource、@Autowired、@Qualifier的注解注入及区别

    spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖.在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入 ...

  10. 10、Android数据存储

    课程目标: 掌握Android中数据存储的几种方式 熟练使用PreferenceActivity&PreferenceScreen做专业的Setting功能 熟练使用SQLite3来存储数据 ...