摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4357【题意】:在1000个数中选择3个之和是m的倍数,可能有多种选择方案,请输出标号排序最小的一组,并且三个标号按升序输出【题解】:三层循环,转化成两层循环 先将1000个数对m取余,存入mod数组,表示是否存在,并对该余数出现的位置进行标记保存,两层循环遍历两个数,用m-这两个数之和,看是否存在mod中,并且位置没有在之前的循环i、j中出现就可以。。。【code】: 1 #include 2 #include 3 #include 4 #include 5 #include 6 ... 阅读全文
摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4359【题意】:输入N,表示几位数,0-这个N位数,有多少个满足条件的号码,不满足的情况为出现4,13的情况【题解】: 写暴力代码找规律 1 92 80 3 711 4 6319得出规律 a[i] = a[i-1]*9 - a[i-2]另外注意处理减法出现负数的情况【code】: 1 #include 2 #include 3 #include 4 #include 5 6 #define MOD 100000000 7 #define N 1000000 8 ... 阅读全文
摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4358【题意】:给定起始位置和方向和目的地,按照左转、前进、右转、后退的优先级递减,也就是说能左转就左转,不能则继续前进,。。。,能走到T的位置输出YES,不能则输出NO。。。【题解】: 首先我们知道YES肯定就是走到了,若出现NO的情况,肯定是出现了死循环,这题主要考标记,什么时候表示已经进入了死循环呢?每个位置有一个方向,我们将这个位置第一次出现方向的时候标记下来,注意是第一次的方向噢,第二次经过的时候判断,是否方向相同,相同则表示出现了跟之前一样的状态,也就是说出现了循环。。。【code】. 阅读全文
摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4353【题意】:每次选择一个小格后,该小格的右上部分就全被删去了,且要求每次至少删去一个格子,选中左下角格子的人算输。【题解】:这个题嘛,这个题嘛,这个题嘛,还是看代码吧,不解释。。。【code】: 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 int main() 9 {10 int t;11 scanf("%d",&t);12 while(t--)13 ... 阅读全文
摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4352【题意】:给你个长串,输出该长串中能第一放出的技能,每个技能有对应的一个小子串,不能放出任何技能输出“Nothing Happened”【题解】:暴力匹配(数据量不大),若数据量巨大,则得用ac自动机解【code】: 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 #define INF 1e9 8 9 struct Nod10 {11 char str1[40];12 ... 阅读全文
摘要:
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4351【题意】:用最小的矩形框,框住像素点差超过5的点。【题解】:求坐标x,y最大最小值【code】: 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 int map[220][220]; 9 10 int abs(int x)11 {12 return x5)36 {37 exist=1;38 ... 阅读全文