
15年寒假集训
a1s4z5
这个作者很懒,什么都没留下…
展开
-
UVa 1586 Molar mass
大意是给你一个分子式,让你求分子量分子式的话只有四种元素思路还是挺清晰的每次碰到一个字母的时候找出对应原子量然后如果是字母就直接加到总的上面去如果是数字就一个一个读取并计算数字实际的值#includeusing namespace std;int main(){ int n; char a[105]; scanf("%d",&n); whi原创 2014-12-19 17:33:22 · 321 阅读 · 0 评论 -
609E - Minimum spanning tree for each edge
给出一个带权图,对每个边求经过这条边的MST先求一遍MST自然是极好的,然后对于在MST上的边,自然就是全局MST了对于不在MST上的边,找到这个边两个端点在MST上的路径上最大权的边并去掉,然后加上询问的这条边的权就好了#include<bits/stdc++.h>using namespace std;#define LL long long const int maxn = 212345,原创 2016-08-04 20:36:38 · 417 阅读 · 0 评论 -
UVa 1368 DNA Consensus String
这题刚开始居然没理解题意给了一个DNA距离的定义就是相同位置但不同的元素的个数然后给你m个长n的DNA串一开始理解为求到最后一个距离最短的序列然后样例过不了。。再然后仔细看了一遍题目是求到所有的DNA串距离和最短的DNA串思路嘛,统计每一个位置出现的字符的数目找到最多的那个,如果有两个一样。。字典序走你至于怎么想出来的~~草稿纸大法好get了原创 2014-12-19 20:29:03 · 473 阅读 · 0 评论 -
UVa 1588 Kickdown
给你两个锯齿状物质(我也不知道叫啥求一个最短的容器使这两个能同时装下刚开始看不懂。。。看懂了还是挺水的让一个在上面,一个在下面刚开始左端对齐每次往左移动一下并判断需要的长度往左移动的时候我油把自己绕进去了(为什么要说又草稿纸大法好attention,最短不能短于两个中最长的那根(想一想,为什么翻过来再来一次,输出最短的那次写完才发现我的max原创 2014-12-19 21:25:57 · 761 阅读 · 1 评论 -
UVa 1587 Box
略水的一题给你六个面,判断能不能组成长方体定义一个mian的结构体{int 长;int 宽;};输入的时候严格按照长大于宽输入然后sort长相等的时候按宽排序这样三对面就排在一起了然后判断第一次写这么长的判断 Orz一次过。~( ̄▽ ̄~)(~ ̄▽ ̄)~ ps:刚开始敲的时候以为条件判断没法处理所有的情况不过敲着敲着发现只有两种情况原创 2014-12-19 21:15:20 · 435 阅读 · 0 评论 -
UVa 10340 All in All
判断s1是不是s2的字串 //这个字串不是连续字串本来想迭代,不过循环不好处理也没想到什么高效的算法干脆递归了每次从母串中的第n个位置查找字串中的下一个字符查找到了递归处理下一个,直到母串or字串结束母串结束时字串未结束return false母串未结束字串结束了return true要是没查到呢?return false 这时上一级不会直接retur原创 2014-12-19 21:11:43 · 354 阅读 · 0 评论 -
UVa 202 Repeating Decimals
循环小数算循环节什么的手动算了一个1/7之后思路很清晰循环节最大长度不会超过分母#includeusing 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 · 436 阅读 · 0 评论 -
UVa 232 Crossword Answers
纵横字谜你懂得想用个队列,发现数组就够了然后开始敲还有就是紫书上说的,做之前检查而不是做了之后后悔,大多数情况下亡羊补牢总是麻烦一点的 从今天开始爱上短路操作,再也不用担心数组越界了#include#includeusing namespace std;int main(){ int n,m=0; int t=1; while(~原创 2014-12-19 18:14:05 · 494 阅读 · 0 评论 -
UVa 1225 Digit Counting
计算从1~n中各个数字出现的次数发现n的范围是10000,果断暴力算然后过了Orz暴力的效率应该是o(nlogn)吧#includeusing namespace std;int a[15];void f(int t){ while(t){ a[t%10]++; t=t/10; }}原创 2014-12-19 17:47:54 · 520 阅读 · 0 评论 -
Uva 1585 Score
第一题,除了水还是水X不计分,O连续出现则累加计分比如连着三个O就是1+2+3=6分,遇到X就重新计算好像也没什么要注意的,上代码好了#includeusing namespace std;int main(){ int n; scanf("%d",&n); char a[85]; while(n-- && ~scanf("%s",&a)){原创 2014-12-19 17:30:37 · 354 阅读 · 0 评论 -
UVa 227 Puzzle
这题和实验里的8 number很像,不过是字符而不是数字%c吃回车。。。。然后加了一个getchar();回忆了一下当时的思路不过这个是移动一但越界就输出 "哈,这个没有最终结果”这个逻辑是不是很眼熟没错,果断上break然后就是无尽的调试最后意识到break之后的字母也会作为下一组的输入知道真相的我眼泪掉下来改了一下,样例过了继续WA仔细看题仔细看题恩原创 2014-12-19 18:08:24 · 434 阅读 · 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 · 1383 阅读 · 0 评论 -
UVa 455 Periodic Strings
给你一个字符串,求它的最小循环节第一个思路是每次给出循环节的长度,然后一节一节的检查接着把我自己绕进去了,果断换个思路不是一节一节的检查而是检查每一节的同一个位置其实两个方法应该是等价的不过前一个.....不说了,贴代码#includeusing namespace std;int main(){ int n; scanf("%d",&n)原创 2014-12-19 17:51:00 · 377 阅读 · 0 评论 -
SDUT 3099 递归回溯?
题目描述若X压着Y,Y压着Z,那么Y,Z都是位于在X的下面的巧克力。若Y在X下面,Z在Y下面,那么Z也是位于在X的下面的巧克力多组输入。 首先输入一个n(1 ),代表有n块巧克力。对于每组输入,输出个整数代表答案,两个数之间用空格隔开。示例输入51 1 22 03 2 4 54 05 0示例输出1 0 2 0 0原创 2015-01-01 16:33:35 · 365 阅读 · 0 评论