摘要: http://ace.delos.com/usacoprob2?a=GILo2ACzmVw&S=checker 经典到烂的n皇后问题。。。题目最坑的地方是不能打表。。。 朴素的DFS是绝对不行的,要改,怎么改?最简单的是改判断方法。 这是最朴素的判断函数: bool check(int dep,int x){ for (int i=1;i<dep;i++) if ... 阅读全文
posted @ 2012-10-11 20:41 ay27 阅读(113) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=0ypAbo0pjhC&S=sprime我的想法很简单,就是先生成一位数的素数,在这基础上生成二位,然后再生成三位四位。。。有一个很简单但是很实用的优化,注意到,素数的各位必定是1,3,7,9,当然一位的素数2,3,5,7,另当别论。这样,我们只需在前一位的基础上添上1,3,7,9,然后逐个判断是否为素数。很简单,但是效率很高。百度上有人用DFS,不过生成方法基本类似。有人先求出所有素数再拆开来判断,都可以。nocow上展示的一个用DP写的程序,真是大神了。。。#include <iostream>#inc 阅读全文
posted @ 2012-10-11 18:58 ay27 阅读(170) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=SFbMUjuLYE9&S=pprime 额。。。用了一种很笨的方法,速度极慢== 首先这里不能先求素数再求回文,时间上肯定过不了。 要先生成回文数,再判断是否为素数。 我的方法:直接枚举回文数的前半部分,然后把数扩展成回文数,判断是否为质数。 主要步骤: 1.筛法求出10000以内的素数,在后面的素数判断中可以加快速... 阅读全文
posted @ 2012-10-11 17:27 ay27 阅读(146) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=khUaw8W1UZV&S=numtri 已经忘记第几次做这水题了。。。。。 发现USACO的first time好像挺容易拿的。。。又一次了。。。 不过,正常来说,我的程序也就是标准写法啊。。。为什么这样都可以first time呢??? #include <iostream>#include <cstdio>us... 阅读全文
posted @ 2012-10-11 15:42 ay27 阅读(104) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=SZbyXoKqpyP&S=milk3 一题比较简单的搜索题。nocow上列出3种解法:http://www.nocow.cn/index.php/USACO/milk3 就我的感觉吧,方法一最简单而且最靠谱,而我的程序长得好像和方法一最像了= = 因为倒法只有6种(a倒b,a倒c,b倒a,b倒c,c倒a,c倒b),而且当且... 阅读全文
posted @ 2012-10-11 14:47 ay27 阅读(274) 评论(0) 推荐(0) 编辑