模拟
a1s4z5
这个作者很懒,什么都没留下…
展开
-
UVa 1368 DNA Consensus String
这题刚开始居然没理解题意 给了一个DNA距离的定义 就是相同位置但不同的元素的个数 然后给你m个长n的DNA串 一开始理解为求到最后一个距离最短的序列 然后样例过不了。。 再然后仔细看了一遍题目 是求到所有的DNA串距离和最短的DNA串 思路嘛,统计每一个位置出现的字符的数目 找到最多的那个,如果有两个一样。。字典序走你 至于怎么想出来的~~ 草稿纸大法好 get了原创 2014-12-19 20:29:03 · 454 阅读 · 0 评论 -
Codeforces 349E - Subset Sums
有n(n≤105)n(n\le 10^5)个数,有mm个下标的集合(集合的大小之和小于10510^5)维护两个操作询问操作:? k?\ k 将下标在第k个集合内数求和输出更新操作:+ k x+\ k\ x 将下标在第k个集合内的数都+x+x因为集合的大小之和小于10510 ^ 5,不妨记集合的大小之和为S考虑将集合分类。将大小超过 S−−√\sqrt S的集合称之为大集合,大小小于S−−√原创 2016-11-02 12:01:59 · 405 阅读 · 0 评论 -
Codeforces 677 C Vanya and Label
按位考虑大水题,,感觉没有什么好说的。。还是看代码吧#include<cstdio> #include<cctype> #include<cassert> #include<algorithm> using namespace std; #define LL long long const int mod = 1000000007;int cove(char c){ if(isdigit(c原创 2016-06-02 21:17:26 · 412 阅读 · 0 评论 -
sdut 3254 stars
给出平面坐标的n(n≤400)n(n\le 400)个整数点(坐标为(x,y)(0≤x,y≤n)(x,y)(0\le x,y\le n),求最小的边长为整数的能至少覆盖kk个点的矩形的面积考虑到n只有400,我们可以枚举矩形的平行于x轴的两条边的坐标,这样的话就退化为了给出一个数组求一个最小的区间并且区间内的数的和大于等于k,这部分可以用双指针来做为了方便起见,我们可以预处理一下二维前缀和其它的细节原创 2016-05-30 17:42:35 · 460 阅读 · 0 评论 -
Poj 1472 Instant Complexity
某模拟题 感觉题意什么都不难,就是给你一些语句让你计算那些语句计算的次数 模拟题,写了两个结构体然后用递归搞好像简单了一点? 坑 OP 0 LOOP 0 END BEGIN OP 1 END 大概就这三个 以及代码(------------------------------------ #include #include原创 2016-01-21 17:58:39 · 461 阅读 · 0 评论 -
Poj 1027 The Same Game
又是一个模拟题。。。。 给出一个棋盘,然后每次要去消除消除后能得到分数最多的棋子 每次消除的时候这个棋子和与它相邻(四联通)并且同色的棋子 (如果没有和他相邻并且同色的棋子,那这个棋子不可消除 如果有多个位置可以选择,更靠左的,要是还是有多个位置,选靠下的 消除之后把所有的棋子往下移,然后再往左靠拢 然后如果干掉所有的棋子了,分数+1000 大概就是这样(原创 2016-01-22 09:03:34 · 476 阅读 · 0 评论 -
UVa 1587 Box
略水的一题 给你六个面,判断能不能组成长方体 定义一个mian的结构体{ int 长; int 宽; }; 输入的时候严格按照长大于宽输入 然后sort 长相等的时候按宽排序 这样三对面就排在一起了 然后判断 第一次写这么长的判断 Orz 一次过。~( ̄▽ ̄~)(~ ̄▽ ̄)~ ps:刚开始敲的时候以为条件判断没法处理所有的情况 不过敲着敲着发现只有两种情况原创 2014-12-19 21:15:20 · 420 阅读 · 0 评论 -
UVa 227 Puzzle
这题和实验里的8 number很像,不过是字符而不是数字 %c吃回车。。。。然后加了一个getchar(); 回忆了一下当时的思路 不过这个是移动一但越界就输出 "哈,这个没有最终结果” 这个逻辑是不是很眼熟 没错,果断上break 然后就是无尽的调试 最后意识到break之后的字母也会作为下一组的输入 知道真相的我眼泪掉下来 改了一下,样例过了继续WA 仔细看题仔细看题 恩原创 2014-12-19 18:08:24 · 418 阅读 · 0 评论 -
UVa 11809 Floating Point Numbers
浮点数 都是眼泪有木有 刚开始题就没看懂 百度补了一下浮点数的储存 想起紫书里一个例子 for(double i=0.0;i!=10;i+=0.1) printf("%llf\n",i);不要目测答案,一定要编译测试一下 (扯远了 -------------------回归分割线(回归线)---------------- 这题思路还是挺清晰的 浮点数分两个部分 那就分别计算两个原创 2014-12-19 22:34:32 · 1355 阅读 · 0 评论 -
UVa 1588 Kickdown
给你两个锯齿状物质(我也不知道叫啥 求一个最短的容器使这两个能同时装下 刚开始看不懂。。。 看懂了还是挺水的 让一个在上面,一个在下面 刚开始左端对齐 每次往左移动一下并判断需要的长度 往左移动的时候我油把自己绕进去了(为什么要说又 草稿纸大法好 attention,最短不能短于两个中最长的那根(想一想,为什么 翻过来再来一次,输出最短的那次 写完才发现我的max原创 2014-12-19 21:25:57 · 742 阅读 · 1 评论 -
UVa 232 Crossword Answers
纵横字谜 你懂得 想用个队列,发现数组就够了 然后开始敲 还有就是紫书上说的,做之前检查而不是做了之后后悔, 大多数情况下亡羊补牢总是麻烦一点的 从今天开始爱上短路操作,再也不用担心数组越界了 #include #include using namespace std; int main(){ int n,m=0; int t=1; while(~原创 2014-12-19 18:14:05 · 478 阅读 · 0 评论 -
UVa 455 Periodic Strings
给你一个字符串,求它的最小循环节 第一个思路是每次给出循环节的长度,然后一节一节的检查 接着把我自己绕进去了,果断换个思路 不是一节一节的检查而是检查每一节的同一个位置 其实两个方法应该是等价的 不过前一个..... 不说了,贴代码 #include using namespace std; int main(){ int n; scanf("%d",&n)原创 2014-12-19 17:51:00 · 356 阅读 · 0 评论 -
UVa 1225 Digit Counting
计算从1~n中各个数字出现的次数 发现n的范围是10000,果断暴力算 然后过了 Orz 暴力的效率应该是o(nlogn) 吧 #include using namespace std; int a[15]; void f(int t){ while(t){ a[t%10]++; t=t/10; } }原创 2014-12-19 17:47:54 · 499 阅读 · 0 评论 -
UVa 1586 Molar mass
大意是给你一个分子式,让你求分子量 分子式的话只有四种元素 思路还是挺清晰的 每次碰到一个字母的时候找出对应原子量 然后如果是字母就直接加到总的上面去 如果是数字就一个一个读取并计算数字实际的值#include using namespace std; int main(){ int n; char a[105]; scanf("%d",&n); whi原创 2014-12-19 17:33:22 · 306 阅读 · 0 评论 -
Uva 1585 Score
第一题,除了水还是水 X不计分,O连续出现则累加计分 比如连着三个O就是1+2+3=6分,遇到X就重新计算 好像也没什么要注意的,上代码好了#include using namespace std; int main(){ int n; scanf("%d",&n); char a[85]; while(n-- && ~scanf("%s",&a)){原创 2014-12-19 17:30:37 · 339 阅读 · 0 评论 -
UVa 10340 All in All
判断s1是不是s2的字串 //这个字串不是连续字串 本来想迭代,不过循环不好处理 也没想到什么高效的算法 干脆递归了 每次从母串中的第n个位置查找字串中的下一个字符 查找到了递归处理下一个,直到母串or字串结束 母串结束时字串未结束return false 母串未结束字串结束了return true 要是没查到呢? return false 这时上一级不会直接retur原创 2014-12-19 21:11:43 · 340 阅读 · 0 评论 -
UVa 202 Repeating Decimals
循环小数算循环节什么的 手动算了一个1/7之后思路很清晰 循环节最大长度不会超过分母#include using namespace std; int main(){ int up,down=0; while(~scanf("%d %d",&up,&down)){ int arr[2][3005]={0}; int len=0,st=0;原创 2014-12-19 20:53:04 · 426 阅读 · 0 评论 -
Codeforces 350C - Bombs
将炸弹按照离原点点的曼哈顿距离排序之后顺序处理即可。#include<bits/stdc++.h> using namespace std;const int maxn = 112345;vector<pair<int,pair<char,int> > > ans;pair<int,pair<char,int> > npair(int st,char c = 'E',int tim = 0){原创 2016-11-02 12:10:54 · 430 阅读 · 0 评论