- 博客(30)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 UVa133——The Dole Queue
很简单的题目。简单来说,就是约瑟夫问题的。只是这里的是从两个方向来数不同的数,再删除。这里的逆时针的是从1到n的方向,顺时针是n到1的方向。给你n,k,m。一个顺时针数m,一个逆时针数k。下面的是AC的代码:#include #include using namespace std;int n, m, k;int a[25];int go(int p, int fla
2015-09-28 23:11:50 349
原创 UVa489——Hangman Judge
题目很简单,猜单词游戏,只能错6次,超过6次算输了,猜错的次数没到7,且结束了猜,则为放弃,目标单词中的字母全猜了且次数小于等于6算赢。需要注意的是,猜的字符串中,重复出现的字符,算一次,举例:目标单词:chess。猜的字符串为dddeswqqax,这里算放弃,因为d只算一次。下面的是AC的代码:#include #include using namespace std;cha
2015-09-24 15:26:04 308
原创 UVa1588——Kickdown
题目的意思:给你两个锯齿状的要合并成宽不大于3的长方体,求长方体的最小的长。两个东西,都有可能在上面,所以分这两个考虑。下面的是AC的代码:#include #include using namespace std;int main(){// freopen("1588.txt", "r", stdin); char str1[120], str2[120]; int
2015-09-23 18:28:29 268
原创 UVa1587——Box
水题。判断给你6个长方形,是否可以组成长方体。我给各个长方形按边排序,判断一下就OK了。下面的AC的代码:#include #include using namespace std;struct data{ int l, r;};int cmp(data a, data b){ if(a.l != b.l) return a.l < b.l; else
2015-09-23 16:35:59 324
原创 UVa10340——All in all
水题,数组开大点,就可以过了。AC代码:#include #include using namespace std;char str1[100000], str2[200000];int main(){// freopen("10340.txt", "r", stdin); while(cin >> str1 >> str2) { int length1 = strl
2015-09-23 16:06:59 236
原创 UVa202——Repeating Decimals
题目的意思是:求解两个数的商,用循环小数的形式输出,输出循环小数的循环长度。模拟除法运算,结果用数组存储就可以了。AC的代码:#include #include using namespace std;int ans[3001], res[3001], temp[3001];int main(){ int m, n, t; while(cin >> m >>
2015-09-23 15:53:57 264
原创 UVa1368——DNA Consensus String
题目的意思是:给你m个等长的DNA序列,求解的Consensus String 的第 i 个是每 i 列出现最多的字符,有相同大小的,按字典序排。而consensus error是每一列不同的字符数之和。下面的是AC的代码:#include #include using namespace std;char str[50][1005];int ans[4];int
2015-09-21 23:01:06 363
原创 UVa232——Crossword Answers
题目需要理解了才能很简单的做出来。RE了好多次,才发现字符串结尾不是 ‘\n’ ,而是‘\0'。还是太渣了。关键的是单词的编号:该位置的左边或者上面是边界或者是‘*’,则该位置是起点,也就是可以从这里开始向右或下读单词。而且最后一组数据之后没有空行。下面的是AC的代码:#include #include #include #include #include using
2015-09-21 00:08:27 358
原创 UVa227——Puzzle
题目的意思,按照指令移动空格到相应的位置。非法操作输出特殊的字符串。题目可以模拟过,暴力过。代码比较冗杂,还需改进。下面的AC的代码:#include #include using namespace std;int main(){// freopen("277.txt", "r", stdin); char str[5][6]; char s; int i,
2015-09-20 20:57:14 275
原创 UVa455——Periodic Strings
求解字符串的最小周期。很简单,枚举暴力过。注意格式!!!AC代码:#include #include using namespace std;int main(){// freopen("455.txt", "r", stdin); char str[100]; int t, i, j; while(cin >> t) { while(t--) { c
2015-09-20 18:46:07 268
原创 UVa1225——Digit Counting
水题。暴力过。AC的代码:#include #include using namespace std;int main(){ int n, t; int ans[10]; while(cin >> t) { while(t--) { cin >> n; memset(ans, 0, sizeof(ans)); for(int i = 1; i <
2015-09-20 16:40:08 300
原创 UVa1586——Molar Mass
题目的意思:计算相对分子质量。下面的是AC的代码:#include #include #include using namespace std;double C = 12.01, H = 1.008, O = 16.00, N = 14.01;int main(){ int t; char str[100]; while(cin >> t) { while(t-
2015-09-20 15:49:18 259
原创 UVa1585——Score
水题。下面的是AC的代码:#include #include using namespace std;int main(){ char str[100]; int t; while(cin >> t) { while(t--) { cin >> str; int length = strlen(str); int ans = 0, res = 0
2015-09-20 15:30:56 313
原创 UVa1584——Circular Sequence
题目很简单。直接暴力过。求解字典序最小的字符串。下面的是AC的代码:#include #include using namespace std;int main(){ int t, i, j, k; char str[110]; char temp[110], ans[110]; while(cin >> t) { while(t--) { cin >>
2015-09-20 15:18:50 241
原创 UVa1583——Digit Generator
水题。AC的代码:#include #include using namespace std;const int MAX = 105005;int ans[MAX];int main(){ int t, n, i; memset(ans, 0, sizeof(ans)); for(i = 1; i < MAX; i++) { int x = i, y = i;
2015-09-20 15:08:09 242
原创 UVa340——Master-Mind Hints
题目很简单。下面的是AC的代码:#include using namespace std;const int MAX = 1010;int main(){// freopen("340.txt", "r", stdin); int a[MAX], b[MAX]; int i, j, n, A, B; int count = 1; while(cin >> n, n)
2015-09-20 15:06:33 243
原创 UVa401——Palindromes
这题,很简单,判断是否是回文串,或者是镜像串,或者又是回文又是镜像。字符的镜像如下:CharacterReverseCharacterReverseCharacterReverseAAMMYYB N Z5C OO11D P
2015-09-20 11:34:47 397
原创 UVa1709——Amalgamated Artichokes
这道题,是 ACM-ICPC World Finals Marrakech的比赛题中的第一题,题目挺简单的,给了你公式。题目要我们求解的是数组中的最大差值,也就是 Max{a[i] - a[j]}其中(i 用暴力的方法也是超时,尽管时间限制是5S,所以需要用线性时间的算法。下面的是AC的代码:#include #include #include using names
2015-09-20 10:26:39 753
原创 UVa10082——WERTYU
题目很水,可是就是不知道怎么一直WR。下面的是WR的代码:#include #include #include using namespace std;char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";int main(){ int i, c; cout << s << endl; while(
2015-09-19 23:40:58 638 1
原创 UVa272——TEX Quotes
#include int main(){ int c; bool q = true; while((c = getchar()) != EOF) { if(c == '"') { printf("%s", q ? "``" : "''"); q = !q; } else printf("%c", c); } return 0;}
2015-09-19 23:37:47 303
原创 北大ACM1067——取石子游戏
杭电1527的代码通不过。AC的代码:#include #include #include using namespace std;int main(){ int a, b; double k = (sqrt(5.0) + 1.0) / 2.0; while(cin >> a >> b) { if(a > b) swap(a, b); int j = b
2015-09-17 16:38:26 490
原创 杭电ACM1527——取石子游戏~~威佐夫博奕
这道题目,就是威佐夫博奕问题。所谓的威佐夫博奕问题就是:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。百度百科中 有详细的论述和证明:http://baike.baidu.com/link?url=YPnShzGoLN4Te1qsPR1FSus9amYbk6HZqMx8__nf_TQ0AE0Lu-A6863I1B
2015-09-17 16:25:03 527
原创 北大ACM2348——Euclid's Game
题目的意思:给两个数a 和 b ,每一次只能从较大数中减掉较小数的倍数,先减到0 的获胜。可以分成两种可能:b - a a第一种情况:b 只能减去a,而b - a之后是必胜态,则它是必败态,反之就是必胜态。而第二种情况总是必胜态。下面的是AC的代码:#include using namespace std;int a, b;void solve(){ bo
2015-09-16 23:09:58 347
原创 北大ACM2484——A Funny Game
题目的意思是:n 个硬币围成一圈,每次只能拿连续的两个或者一个硬币,最后拿完的那个人胜利。相隔空位的硬币视为不连续。这个问题,其实是一个必败的事件。n 个硬币围成一圈,第一个人从中取两个或者一个,另外的一个人可以通过在第一个人的去的位置的对面取两个或者一个硬币使得剩下的硬币成为两条等长的链,而无论第一个人再次如何取,另外一个人都可以让剩下的硬币成为两条等长的链。而第一个人必败。第一个人
2015-09-16 22:46:50 363
原创 北大ACM3041——Asteroids~~最小顶点覆盖问题
题目的意思是:在N * N 的网格中,有K 个小行星,一个强大的武器,可以一次消灭一行或者一列的行星,求最少的发射武器的次数将所有行星消灭。这个就是最小顶点覆盖问题。求解最小顶点覆盖问题很难,然而最大匹配数等于最小顶点覆盖。所以问题转换成最大匹配的求解。AC代码:#include #include using namespace std;//输入int N, K;in
2015-09-12 22:33:17 838
原创 北大ACM2187——Beauty Contest
题目的意思是给你N个点,求各对点之间的距离的最大值的平方。由于N很大,暴力的方法不行,所以就要去点一些没有必要计算的点,也就是求凸包。凸包的求解方法,就是将所有点排序之后,第一个和最后一个必定是凸包上的点,剩下的就是从上和从下两个方向继续求解凸包上的点。不懂的可以看这个:http://www.cnblogs.com/jbelial/archive/2011/08/05/2128625.
2015-09-12 21:56:25 372
原创 北大ACM1127——Jack Straws
题目的意思:给你N条木棍的两段的坐标,问 a 木棍与 b 木棍是否相连。间接的相连也算。判断点q 是否在线段p1p2上,只要利用外积是否有(p1 - q) * (p2 - q) = 0来判断是否在直线p1p2,再利用内积根据是否有(p1 - q) * (p2 - q) 要求两直线的交点,通过变量t 将直线p1p2上的点表示为p1 + t(p2 - p1),交点又在直线q1q2上,所
2015-09-09 23:03:26 458
原创 杭电ACM2059——龟兔赛跑~~DP
对于DP,还不是很熟。需要加强!!~~说一下这道题,由于兔子是匀速的,所以兔子到达终点的时间是确定的,唯一不确定的是乌龟的。将起点,终点,以及中间的N个充电站当作N + 2 个点。需要求解到达N + 2个点的最优解。起点时间是0.这是必须的,然后往后面DP到第i个,就让j从0循环到i-1,依次代表从j站充满了电一直开到i站,这样得到到达i站所需要的最短时间。最后比较到达第n+2
2015-09-06 20:33:10 4102 2
原创 Java多线程实现同时进行小球的自由落体与平抛
Java多线程的实现方法有继承Thread和实现接口Runnable。我这里用的是通过实现接口Runnable来创建新线程的。要实现自由落体与平抛。首先,是小球在窗口中运动。将小球封装成一个类,继承Canvas。通过new小球的类,添加到窗口上。运动的是不断的变化小球的位置,通过Sleep一小段时间。来实现动画的效果。下面的是代码,有详细注释。import java.a
2015-09-06 16:58:54 3416
原创 Java实现了任意位置截屏(仿QQ截图)
最近刚刚学完java,就做了这个小程序。当然,也是通过百度查找资料,最后做出了这一个小程序。功能:点击截屏按钮,就开始截屏,在屏幕上画出一个区域之后,就可以通过双击将图片保存到桌面。如果不想截屏,就右键鼠标,退出程序。我的是win10系统,所以桌面的地址是:C:\\Users\\Administrator\\Desktop。这个小程序,每截一次屏,就退出了程序,能力有限,所以想再次
2015-09-02 21:23:30 10015 2
vs2013 fstream 无法打开文件
2015-03-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人