usaco
文章平均质量分 71
凉秋girl
保持学习应该是最难的一件事吧?
展开
-
broken becklace<uscao>1.1
the reason failure:1、首先给的样例必须得过,提交前都测一遍。2、考虑各种情况,把所有可能存在的情况都分析.如这题给的字符串,如果字符串全部一样,或者只给一个,或者给很多.3、初始化问题,再出出现.thining:这题是项链题,要考虑到(项链头前面第一段可取+项链尾之前那一段(如果可取))+项链头第二段得相加是一种情况,但项链尾之前第二段可取+(项链尾前第一段+项原创 2016-11-22 14:44:30 · 378 阅读 · 0 评论 -
水<并查集,但是WA好久>
In this hot summer AIUB students decided to go on a trip to Cox’s Bazaar sea beach. Every student has some amount of money to spend in this trip. Each student belongs to some group. If student A kno原创 2017-03-08 22:46:45 · 483 阅读 · 0 评论 -
codeforces #403 C
meaning:就是给n个点,这n个点可以从任意点到任C. Andryusha and Colored Balloonstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output原创 2017-03-06 12:30:55 · 269 阅读 · 0 评论 -
西北
字符串一题。!!!做题还是太慢太慢了,debug花费了大量时间。#include #include #include using namespace std;struct ttt{ int left,right;};char qq[100500];ttt gg[100500]; int i,j,k,l,f1,f2,f3,t1,t2,t3,n,m; in原创 2017-03-06 15:53:35 · 241 阅读 · 0 评论 -
兔子窝
简单bfs代码:#include #include#include using namespace std;struct ttt{int r,c;int step;};char map1[15][15];int walked[15][15];int dr[4]={0,1,0,-1};int dc[4]={1,0,-1,0};int main(){ //fre原创 2017-03-06 16:17:54 · 560 阅读 · 0 评论 -
codeforces 402 E
TLE好多次,原来是map的原因,用map做一个数组使用的话,速度会慢上许多哟!!#include #include #include #include #include#include #include using namespace std;const long long INF=1e15+7;struct ttt{int a;int b;string z;int原创 2017-03-10 09:10:32 · 585 阅读 · 0 评论 -
codeforces 395 D <思维,DFS想了半天超时>
代码#include #include #include using namespace std;int x[100500];int y[100500];int k[100500];int t[100500];int dfs(){ }int main(){ //freopen("in.txt","r",stdin); int i,j,l,f1原创 2017-03-10 16:39:12 · 370 阅读 · 0 评论 -
L2-005. 集合相似度
开始有一题一直超时,然后不断想着改进的办法。然后想到一种,既然每次都要寻找一个f1值其包含的值,那么可以先一次找完所有这个f1有的数。set对于数字的查找速度远远大于map!!!map是比较慢的#include #include #include #include #include #include using namespace std;struct ttt {int原创 2017-03-11 09:35:53 · 260 阅读 · 0 评论 -
矩阵快速幂模版
输入样例是3 22 1 10 4 53 0 2#include #include #include using namespace std;struct ttt{ int map1[200][200];};int n;ttt fun1(ttt &a,ttt &b){ ttt c; int i,j,k; for(i=1;i<=n;原创 2017-03-07 17:50:10 · 303 阅读 · 0 评论 -
通过前序和中序求树
#include #include #include using namespace std;struct ttt{int l,r,w;};char q1[50];char q2[50];ttt qq[500];int walked[500];int n;int gg;int tt;int tree(int x,int y,int m,int w){ int k原创 2017-03-11 12:21:47 · 346 阅读 · 0 评论 -
知道后/中序遍历,求前
#include #include #include using namespace std;struct ttt{int l,r,w;};char q1[50];char q2[50];ttt qq[500];int walked[500];int n;int gg;int tt;int tree(int x,int y,int m,int w){ cout原创 2017-03-11 13:15:36 · 216 阅读 · 0 评论 -
usaco 2.4 PROB Bessie Come Home<水>
题目给出一个Z点表示终点,然后给各种点之间的距离,大写的点有牛,小写的点没牛,每只牛的速度一样,问哪只牛最快到达终点,直接从Z跑一遍最短路然后找即可。/* ID: 13227851PROG: comehome LANG: C++ */ #include #include #include #include #include #include #include #inc原创 2017-05-22 09:22:52 · 221 阅读 · 0 评论 -
USACO 2.4 Fractions to Decimals
题意:给2个数字,输出a/b的值,如果结果是整数就输出结果.0,如果在小数不是无限的小数,就输出如22 5 输出4.4,但是如果是无穷循环小数如10 3 就输出3.(3),把循环输出的用括号括起来。由除法的逻辑可以知道,如果除数相同,被除数不变的话,那么除的结果一定相同,根据这个原理,把出现被除数丢到一个数组中进行标记,标记为其第一次出现的位子,那么第二次出现的时候break这个循环,原创 2017-05-22 10:51:48 · 389 阅读 · 0 评论 -
usaco 2.4
题意给几个联通图(>=2个),每个联通图的直径为图中任意两点最短距离的最大值,然后将任意2点(在不同的联通图中)用一个路径连起来(路径是有长度的),问连通后最小的这个直径是多少。刚开始是先用并查集合并一波,然后每个dfs一遍,找到离其最远的点(同一个联通图中)存如len中(len就是这个点与这个图的结点的最远距离),然后将距离连起来,枚举这个路径连接全部的点,找到连接后的最小值,这个值为这两个原创 2017-05-22 21:53:29 · 291 阅读 · 0 评论 -
usaco 3.1 Contact
#include #include #include #include #include #include #include #include #include #include #include using namespace std;mapmap1;struct ttt{int num;string s;};ttt qq[305000];string s1,原创 2017-07-18 18:17:11 · 467 阅读 · 0 评论 -
usaco 4.1
题意:给很多条围栏,然后给每一条围栏左边和右边相连的围栏,问最短围栏的周长是多少(可围起来)。把围栏当成点,其有一个值,然后连接的围栏说明有一条边,判断最小长度的环是多少。可以暴搜,从每一个点开始找到从左边和从右边分别每个点离这个点的最短距离是多少,然后通过这2个最短距离相加得到的就是这个周长,然后找到这个周长。the reason of failure:1、有可能从V为root,原创 2017-07-27 11:57:03 · 164 阅读 · 0 评论 -
西北大学<数字问题>
#include #include #include #include #includeusing namespace std;bool walked[700500];char a[7];int main(){ // freopen("in.txt","r",stdin); int i,j,k,l,f1,f2,f3,t1,t2,t3; int n,m;原创 2017-03-05 10:23:43 · 449 阅读 · 0 评论 -
bfs
1.题意就是给一个图,里面有钥匙和门,一把钥匙对应一种门,问能不能到终点,如果不能输出-1,如果能输出最小步数。直接队列bfs,注意拿了不同钥匙的状态是不一样的,是可以接着走下去的,注意判断什么时候算重复状态就行。#include #include #include #include using namespace std;struct ttt{ int r,c;原创 2017-03-05 09:25:00 · 152 阅读 · 0 评论 -
USACO 1.3 Ski Course Design <枚举>
the reason of failure:1、当特殊值输出时,应该立刻停止下面程序的运行,否则会输出2个结果。2、定义的初值minn太小,如果第一个答案本身就大于minn,那还怎么给minn赋值thinking:枚举全部可能,从1-18 2-19 3-20 这样的区间枚举题目Ski Course DesignFarmer John has N hills on h原创 2016-12-07 10:39:22 · 244 阅读 · 0 评论 -
Dual Palindromes<uscao>1.2 <进制转换+枚举>
the reason of failuire:1、题目是要求第一行输入N S 第一个数N为需要输出从S开始的符合条件的N个数,而我误解为S开始到S+N区间里的数.2、开了一个名为qq的数组用来标记各个数字转换进制为为回文数的次数,但开得比较小,结果数据大于所开的数组了,应该看着题意来开数组.thinking:把从S开始的数转换为2-10进制,然后判断其是否为回文数,然后统计其是回文数的次数原创 2016-11-25 14:08:08 · 343 阅读 · 0 评论 -
USACO 1.1.4<枚举>
the reason of failure:1、输出时,最后一行需要换行。题意:就是给3个桶,给出每个桶的容量大小,开始只有第三个桶有牛奶,问当第一个桶牛奶数为0时,第三个桶有多少牛奶,直接枚举,2个for循环,从i倒到j,当且i不为0且j不满的时候,当第一个桶的牛奶为0的时候,记录下第三个桶的牛奶数量。/*ID: mePROG: milk3LANG: C++*/#inc原创 2016-12-30 13:15:56 · 280 阅读 · 0 评论 -
USACO 1.5 PROB Prime Palindromes <构造回文+素数判定>
the reason of failure:1、超出内存了,刚开始是用筛素数的方法,可是数字毕竟大。2、然后是直接输入判断是否回文和是否素数,结果是超市。thinking:要么枚举回文,判断素数,要么枚举素数,判断回文,可以通过构造回文的方法。对一个N位数的数字,反转给其右边一个N-1位的数字,和反转给其右边一个N位的数字,然后通过2个while来取完整的N位数和只取左边N-1个数原创 2016-12-30 17:04:04 · 304 阅读 · 0 评论 -
usaco Superprime Rib<dfs找回文>
短时间一遍过,还是挺开心的。题意是给一个n,找出n位数的大回文素数数,大回文数的定义是对于如2339是素数,233是素数,23是素数,2是素数,那么其就是大回文数。thinking:直接从第一位开始到第N位开始构造DFS,如2是素数那么将*10搜索其下一位,然后接着搜索下一位,直到位数大于n,则输出。这样可以保证前面几位的构成都是素数,代码:/*ID: mePROG: sp原创 2016-12-30 17:23:21 · 278 阅读 · 0 评论 -
USACO 2.1 castle <图搜索>*****
提交了好多次,坑好多啊the reason of failure:对各种小问题都考虑齐全再提交,别有一种侥幸的心理!!!1、储存能走的路的时候还要两个路之间需要储存墙,想好墙分别在那些地方,初始化的时候哪里有墙。2、判断是否能走下一步的时候,要判断是否能走和是否走重。3、走上下左右的时候,要考虑的4个方向都不能走,应该如何解决,应该是在这个if就把其标记走过而不是等走右边的时候原创 2016-12-30 21:16:55 · 303 阅读 · 0 评论 -
USACO 2.1 Healthy Holsteins <0/1枚举>
the reason of failure:1、0/1问题取的值是哪一个是需要注意的。thinking:直接0/1枚举全部代码:/*ID: mePROG: holsteinLANG: C++*/#include#include #include #include using namespace std;int qq[500][30];int a1[30];boo原创 2017-01-14 20:39:15 · 208 阅读 · 0 评论 -
USACO Hamming Codes 2.1
一遍过。但是题意是百度出来的。。看来英语还是太烂太烂了。题意是:对于给出的例子从0000000开始,找出下一个密码,是0000111,再找下一个,这个是必须既和0又和7符合密码规则的密码。thinking:1、直接DFS深搜,然后把之前的重复判断一遍代码:/*ID: mePROG: hammingLANG: C++*/#include#include #include原创 2017-01-15 14:23:44 · 252 阅读 · 0 评论 -
USACO 2.1 <枚举>
the reason of failure:1、交换的值是数组中的值,而不是其下标。题意:给一个数N,接下来N行有N个数,这些数是乱序了的1,2,3,问如何用最小的交换次数把他们按升序排序。thinking:找出所有1次交换就能使得2个数字位子正确的交换,然后剩下的那些数交换需要a/3*2次。代码:/*ID: mePROG: sort3LANG: C++*/#incl原创 2017-01-01 17:54:21 · 203 阅读 · 0 评论 -
USACO 2.3Cow Pedigrees
题意:先给一堆短的字符,当遇到(.).时表示这些短的字符输入结束,然后给一个长的字符(这里注意题意,这个字符不一定在一行,有可能是多行组合的)。判断由这些字符能组成这个长的字符的前缀最长能有多长。样例:A AB BA CA BBC.ABABACABAABC输出是11.thinking:用个队列装着往后搜索,把每个能到的位置标记,如果没到过就放入队列,然后输出最长的值原创 2017-03-02 10:13:59 · 340 阅读 · 0 评论 -
USACO 2.3
直接dfs要注意的一点是输出的顺序。/*ID: mePROG: zerosumLANG: C++*/#include #include #include using namespace std;int n;int f1[30];int fun(){ int i,j; int sum1=1; int t1; for(i=1;i<=n-1;原创 2017-03-03 11:11:26 · 418 阅读 · 0 评论 -
USACO 2.3Money Systems(简单DP)
meaning:就是给钱的种数(无线多张),钱的总金额,问有多少种组成办法可以组成这个金额。thinking:直接DP,想状态转移方程,dp[i][j],表示用i种面额最多可以拼成总额为j的种数。然后dp[i][qq[i]]初始化都为1,当qq[i]>j时,dp[i][j]=dp[i-1][j]+dp[i][j-qq[i]],2个加分别是取这个面额和不取这个面额的意思代码:/*原创 2017-03-03 15:04:47 · 420 阅读 · 0 评论 -
2.3 Controlling Companies<DFS>
meaning:题意是给很多行a b c ,表示a控制b股份的百分c,如果c>50,说明a控制b,如果a对d的股份+b对d的股份+...>50,也就是a+a控制的所有子公司对d的股份>50,也能说明a控制了d。thinking:1、刚开始一直在想用树形结构,然后从最低点的结点向上找,然后发现。。。自己的thinking深度太低了,多换个方向思考,独立,专心的思考!!。这题就是dfs,从第1原创 2017-03-04 10:40:19 · 359 阅读 · 0 评论 -
USACO 2.4 The Tamworth Two<简单图问题>
meaning:题意是给一张图,图中有牛的位置,农场主的位子和障碍物。牛和农场主只能沿着一个方向走直到要出界或者走到障碍物就转弯!!(注意是走到障碍物才转弯,而不是碰到之前转弯),转弯的方向为顺时针,问农场主是否可以和牛相遇。the reason of failure:1、需要注意是走到障碍物才转弯。2、给的图有C和F,如果只遇到'.'才走下去显然是错的,遇到C||F都可以接着走下去。原创 2017-03-04 16:11:57 · 391 阅读 · 0 评论 -
2.4 Overfencing <BFS>
meaning:题意就是给一个图,图的4周会存在2个门,然后问这些门到这个图中最远的空地需要最少多少步。thinking:直接BFSthe reason of failure:1、gets的不能使用,应该用scanf("%c",&a);的方法来输入空格到数组中。2、代码错误,中间代码写错了,应该列是从0开始,而不是1,过一部分数据只表明前面那些数据没涉及这个问题.代码:/*I原创 2017-03-04 23:40:30 · 338 阅读 · 0 评论 -
usaco 3.2 Magic Squares
题意:给一个二维模版,有3种方式的变化形态,问变化到一个形态的最短路径是什么直接就用队列找最短即可。注意保存状态是用map来进行的保存/*ID: PROG: msquareLANG: C++*/#include#include #include #include#include #include #include #include #include #inclu原创 2017-07-28 21:50:05 · 205 阅读 · 0 评论