随笔分类 -  模拟

摘要:题意:在一个有12行12列的方形的武林世界里,少林、武当和峨嵋三派的弟子们在为独霸武林而互相厮杀。武林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)……右下角的坐标为(12, 12)。如图:少林派弟子总是在同一列回不停地行走。先往下走,走到头不能再走时就往上走,再到头则又往下走……比如,(1, 1) -> (2, 1) -> (3, 1)。武当派弟子总是在同一行来回不停地行走。先往右走,走到头不能再走时就往左走,再到头则又往右走……比如,(2, 1) -> (2, 2) -> (2, 3)。峨嵋派弟子总是在右下-左上方向来回不停走,先往右下方 阅读全文
posted @ 2013-01-30 14:55 'wind 阅读(670) 评论(0) 推荐(0)
摘要:题目:mmm is learning division, she's so proud of herself that she can figure out the sum of all the divisors of numbers no larger than 100 within one day! But her teacher said "What if I ask you to give not only the sum but the square-sums of all the divisors of numbers within hexadecimal num 阅读全文
posted @ 2012-10-26 21:14 'wind 阅读(210) 评论(0) 推荐(0)
摘要:题意: 从长度为 n 的数字中去掉k个数字,问剩下的数字组成的数最小是多少。分析:可以看成从原来的数字中找一个长度为n-k的子串并且最小。每次从第st 个位置到第k+top个位置中找到最小的一个数字 st 为上次找到的数子的后一位,top为当前已经找到的数字个数。#include <stdio.h>#include <string.h>int main(){ char s[1005]; int res[1005]; int i, j, k; while(scanf("%s%d",s,&k)!=EOF) { int n = strlen(s); 阅读全文
posted @ 2012-10-13 13:02 'wind 阅读(217) 评论(0) 推荐(0)
摘要:题意: 知道了一个数轴,对应两种操作 0 x 在x位置放置一个食物 1 让小强吃掉一个距离它最近的一个食物,如果左右食物距离一样,方向取和上一次的那个一样 小强一开始在位置0,问最后小强经过的最短距离是多少分析: 开两个有限队列,分别保存小强左面食物的位置和右面食物的位置,模拟过程即可。#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>using namespace std;#define maxn 100005#define clr(x)memset(x,0 阅读全文
posted @ 2012-09-15 17:55 'wind 阅读(226) 评论(0) 推荐(0)
摘要:题意: 给N个人依次分卡片,然后从的第一个人到最后一个人依次拿走全部的卡片,问最少经过多少次,可以使得卡片回复到原来的次数。分析:求出每个卡片循环到原来位置的最少次数,在一个循环节中,每个卡片的循环次数相同,求出这些循环次数的最小公倍数即可,(输入要用%I64d,用%lld wa了好长时间)#include<stdio.h>#include<string.h>#define maxn 1000long long next[maxn];long long a[maxn];long long gcd(long long x, long long y){ if(!x||!y) 阅读全文
posted @ 2012-08-25 21:58 'wind 阅读(245) 评论(0) 推荐(0)
摘要:题意: 有 n 个萝莉,和 m 个怪叔叔,已知他们的坐标,且任意三个人不共线,要求从萝莉中任选三个人出来,且三个人 组成的三角形中不能包含怪叔叔,共有多少种取法。分析: 将萝莉的坐标按横坐标排序,用 f[i][j] 表示萝莉 i 到萝莉 j 的横坐标范围内,位于萝莉 i ,j上方的 怪叔叔数量,对于横坐标依次增加的 萝莉 i,j,k ,如果有 f[i][j]+f[j][k]=f[i][k], 则 萝莉 i,j,k 组成的三角形内不含有怪叔叔(画图能够看出)。 时间复杂度为 O(N^3)。View Code #include<stdio.h>#include<string.h& 阅读全文
posted @ 2012-06-05 23:31 'wind 阅读(207) 评论(0) 推荐(0)
摘要:题意: 给你一个矩形范围,让你在这个矩形内找一个漩涡状的区域,使得和最大。分析: 暴力枚举所有漩涡,有个注意的就是: 由于漩涡套漩涡,所以每个漩涡的值都等于该矩形区域的数字和减去刚好嵌在 该漩涡内的漩涡和左上角一个小缺口,画图很容易看出。View Code #include<stdio.h>#include<string.h>#define min(a,b)(a)<(b)?(a):(b)#define max(a,b)(a)>(b)?(a):(b)int c[500][500];int c1[502][502];int c2[502][502];int n, 阅读全文
posted @ 2012-05-24 20:03 'wind 阅读(223) 评论(0) 推荐(0)
摘要:题意: 给你个n*n 的位图,让你放大k 倍后输出。分析: 最终图案的每一部分都是有原图相应位置扩大而来,可以用递归实现。View Code #include<stdio.h>#include<math.h>#include<string.h>char a[30][30];char v[3005][3005];int n;void dfs(int k,int x,int y){ int tmp,i,j,tot,l; if(k==1) { for(i=x;i<x+n;i++) for(j=y;j<y+n;j++) ... 阅读全文
posted @ 2012-04-26 23:56 'wind 阅读(162) 评论(0) 推荐(0)
摘要:Description教授Leyni喜欢跟罗莉一起玩,这次,XianGe也来了,他们处在一个r*c的矩形区域中。Leyni处在矩形区域的入口外(左上角左侧),XianGe处在矩形区域的出口外(右下角右侧),罗莉处在矩形区域内。现在Leyni要喊话给XianGe,可是声音在这个矩形区域内只能横向或者垂直传递,而且,如果某个罗莉听到了声音(听到声音的罗莉不会阻碍声音继续传播),Leyni可以命令她作为传递者向四周传递一次声音,使得与她同一行同一列的罗莉都能听到声音(如下图右侧情况);当然,Leyni也可以让听到声音的罗莉不传递(如下图左侧情况);Leyni处在入口(左上角)的左侧,所以他只能向第一 阅读全文
posted @ 2012-04-15 13:51 'wind 阅读(521) 评论(0) 推荐(0)
摘要:Problem DescriptionAs we know, Big Number is always troublesome. But it's really important in our ACM. And today, your task is to write a program to calculate A mod B.To make the problem easier, I promise that B will be smaller than 100000.Is it too hard? No, I work it out in 10 minutes, and my 阅读全文
posted @ 2012-04-05 21:14 'wind 阅读(208) 评论(0) 推荐(0)