题意:给你一个变形虫,初始大小未知,在一定时间顺序内它会遇到n个凝胶,如果这个凝胶大小和他大小一样,他的大小加倍。问你最后变形虫不可能的大小有多少个。

解题思路:只有在n个凝胶大小出现过的值才会变,找出变化的即可 (做的慢掉分了)

解题代码:

// BEGIN CUT HERE
/**/
// END CUT HERE
#line 7 "AmebaDiv1.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std;#define PB push_back
#define MP make_pair#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII;struct node{long long x; int y ; }a[300];int cmp1(const void *a ,const void *b)
{if((*(node*) a).x == (*(node *)b).x)return(*(node*) a).y - (*(node *)b).y;return(*(node*) a).x - (*(node *)b).x;
}
class AmebaDiv1
{public:int count(vector <int> X){int n = X.size();for(int i = 0 ;i < n;i ++){long long ans = X[i];for(int j = 0 ;j < n ;j ++)if(X[j] == ans)ans *= 2 ;a[i].x = ans;a[i].y = X[i] ; }qsort(a,n,sizeof(node),cmp1);node b[1000];int bnum = 1; b[1].x = a[0].x;b[1].y = a[0].y;for(int i =1; i< n;i ++){if(a[i].x != a[i-1].x || a[i].y != a[i-1].y  ){bnum ++ ; b[bnum].x = a[i].x;b[bnum].y = a[i].y;}           }int sum = 0 ;for(int i = 1;i <= bnum;i ++)for(int j = 0 ; j < n ;j ++){if(i >= 2 && b[i].x == b[i-1].x)break;if(b[i].x == X[j]){sum ++ ;break;;}}return bnum-sum + tsum ;}};

View Code

转载于:https://www.cnblogs.com/zyue/p/3646233.html

[TC]SRM615 div1 250 AmebaDiv1相关推荐

  1. TC SRM683 Div1 250

    大意是有一排石子,每一堆有a[i]个,目标状态每一堆有b[i]个,每一步可以从一堆中取出一个石子转移到相邻的一个,其中1和n也算相邻也即环形.问最少步数. 比赛的时候写了个按照步数贪心的做法,FST了 ...

  2. Topcoder SRM 655 DIV1 250 CountryGroupHard

    题意:不同国家的人站在一起,同一个国家的人相邻站,给你一个数组,表示 这个位置属于的国家有几个人,0可以是任何数字,问你能不能确定这个数组(只有一个解) 解题思路:搜索 解题代码: 1 // BEGI ...

  3. 国内C/C++刷题网站汇总

    作者:Luau Lawrence 链接:https://www.zhihu.com/question/25574458/answer/31175374 来源:知乎 - Welcome To PKU J ...

  4. JS学习之路,菜鸟总结的注意事项及错误更正

    JavaScript 是一种面向对象的动态语言,它的语法来源于 Java 和 C,所以这两种语言的许多语法特性同样适 用于 JavaScript.需要注意的一个主要区别是 JavaScript 不支持 ...

  5. 刷题!刷题!刷题网!!!

    0.网易有道OJ : http://oj.youdao.com/ 刷题汇总: https://vjudge.net/ 1.赛码网 :http://www.acmcoder.com/index 2.计蒜 ...

  6. 编译原理课程实践——实现一个初等函数运算语言的解释器或编译器

    编译原理课程实践--实现具有初等函数运算语言的解释器或编译器 作者:Sylvan Ding |转载请注明文章出处! 摘要:本文主要内容是设计词法分析器.语法分析器(LL(1).SLR(1))和语义分析 ...

  7. 整理:ACM相关好的网站 OJ Blog (不断更新)

    ACM-ICPC世界网站 http://acm.timus.ru http://acm.sgu.ru http://acm.hnu.cn http://acm.hdu.edu.cn http://ac ...

  8. DB2 ODBC简介

    http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1008yanqh/?S_TACT=105AGX52&S_C ...

  9. TC SRM 655 Div1 Level 3 题解

    TC SRM 655 Div1 Level 3 题解 题目传送门 dp+几何 首先可以发现凸包是顺时针排列的一些线段构成的.我们可以预处理每一个蓝点是否都在一个线段 r [ i ] → r [ j ] ...

最新文章

  1. for...in和 for...of
  2. C#第一个程序Helloworld
  3. MySQL - 高效的设计MySQL库表
  4. table_line
  5. 一:Greenplum5.10.2 生产环境安装配置 (系统初始化、安装准备)
  6. ubuntu下集群设置静态ip
  7. 预防死锁可以破坏哪些死锁的必要条件
  8. 关于INADDR_ANY
  9. Mozilla Firefox 7.0 发布
  10. php phar效率,PHP的Phar包原来性能这么强
  11. Tensorboard 安装及使用
  12. visual studio设置背景颜色为眼睛保护色
  13. 把RAdam和LookAhead合二为一
  14. 软件工程毕业设计课题(19)基于JAVA毕业设计JAVA外卖点餐系统毕设作品项目
  15. vijos 1641 Vs Snowy
  16. 小米科技面试题-互联网老辛整理
  17. python下载电影天堂视频_Python抓取电影天堂电影信息的代码
  18. 百度地图绘制大量标注点卡顿问题完美解决
  19. Brain Predicted Age (一)
  20. oracle 12 去掉 cdb,Oracle 12c no-CDB转换为CDB

热门文章

  1. TestNG学习(一)
  2. Apache OpenNLP
  3. JAVA程序员代表大众车,C++程序员代表捷豹,看看各类程序员们代表着什么车
  4. Python包管理器-pip
  5. 也来谈一谈js的浅复制和深复制
  6. solr6.6 导入 文本(txt/json/xml/csv)文件
  7. 使用阿里云容器服务Jenkins 2.0实现持续集成之the tag you want篇(updated on 2017.09.06)...
  8. Linux基础 权限与用户管理命令
  9. day12 python学习随笔 中
  10. iOS开发 - 利用js去除webview广告