上一页 1 2 3 4 5 6 7 ··· 30 下一页
摘要: 思路:每次找出可能情况最少的位置枚举可能情况!!!poj2676和这题一样不过poj数据比较水,很容易过。代码如下: 1 #include 2 #include 3 #include 4 #define M 100005 5 using namespace std; 6 char str[9][9]; 7 struct point 8 { 9 int x,y;10 }p[82];11 int cnt,tot;12 bool is_ok(int x,int y,char c) //判断c是否可以放13 {14 int u=x/3*3;15 int v=y/3*3;16 ... 阅读全文
posted @ 2013-10-03 10:37 _随心所欲_ 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 思路:这题的关键就是重复根只可能是整数。这样先求出所有的根的数目,在减去重复的根。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #define ll long long 6 using namespace std; 7 bool f[6000005]; 8 int main(){ 9 ll n,m;10 scanf("%I64d%I64d",&n,&m);11 ll ans=0;12 memset(f,0,sizeof(f));13 for(ll b=1;b=0;c--){17 ... 阅读全文
posted @ 2013-10-03 09:43 _随心所欲_ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 思路:当移到右下角时,就不能移动了。所以与右下角的奇偶性相同的位置,都不能直接到达,先手必败!只需考虑与右下角奇偶不同的位置,可以看成NIM博弈。最后NIM和不为0的胜,否者败!!代码如下: 1 #include 2 #include 3 #include 4 #define M 105 5 using namespace std; 6 int main() 7 { 8 int t,ca=0,n,m,a; 9 scanf("%d",&t);10 while(t--){11 scanf("%d%d",&n,&m);12 int an 阅读全文
posted @ 2013-10-02 18:28 _随心所欲_ 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 思路:(注意2个圆的半径可以不一样)有2种情况:1) 水平和竖直放。这种情况很简单,刚开始以为只有这种情况,但是样例5不对,后来知道还有一种情况。2)斜线也可以放。只要满足勾股数就可以。现在的问题是怎样确定包含2个圆的矩形,可以通过枚举一个圆的半径来确定。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll long long 9 #define M 100010 #define inf 1e1011 #define mod 100000000712 usi 阅读全文
posted @ 2013-10-02 14:56 _随心所欲_ 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 思路:由于最多只有一个是奇数,所以二分枚举这个点,每次判断这个点的左边区间段所有点的和作为二分的依据。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll long long 9 #define M 20000510 #define inf 1e2011 #define mod 100000000712 using namespace std;13 struct inter14 {15 ll a,b,c;16 }p[M];17 bool cal(in... 阅读全文
posted @ 2013-10-01 16:21 _随心所欲_ 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 思路:矩阵快速幂+中国剩余定理!!查资料得到2个公式: 1) B[n+p] = B[n] + B[n+1] mod p ; 2) B[p^m+n] = m*B[n] + B[n+1] mod p .用这两个都可以解决这个问题,第二个可以在0ms解决。质因数分解95041567=31*37*41*43*47,用矩阵快速幂分别求出B[n]%p (p是95041567的质因子)的结果。这样就得到5个同余等式,在用中国剩余定理求解既可。代码如下: 1 #include 2 #include 3 #include 4 #define M 51 5 #define mod 95041567 6 #d... 阅读全文
posted @ 2013-10-01 16:02 _随心所欲_ 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 思路:主要是二进制的运用。为了方便从0开始,首先看下右移一下,高位异或1的规律:(可以从右往左一列一列看)000(0) -> 100(4) -> 110(6) -> 111(7) -> 011(3) -> 001(1) -> 000(0)001(1) -> 000(0) -> 100(4) -> 110(6) -> 111(7) -> 011(3) -> 001(1)010(2) -> 101(5) -> 010(2) -> 101(5) -> 010(2) -> 101(5) -> 0 阅读全文
posted @ 2013-10-01 10:59 _随心所欲_ 阅读(332) 评论(2) 推荐(0) 编辑
摘要: 思路:容易知道加向量的顺序是按向量斜率的大小顺序来的。由于数据不是很大,可以用背包解决!!dp[i][j]:加入最大面积为i时,加入了j个向量。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll long long 9 #define M 5510 #define inf 1e1011 #define mod 100000000712 using namespace std;13 struct point14 {15 int x,y;16 ... 阅读全文
posted @ 2013-09-30 18:35 _随心所欲_ 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 思路:三维DP,刚开始用记忆化搜索,MLE……后来改为直接预处理所有的情况。总之就是必败态的后继是必胜态!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll long long 9 #define M 30210 #define inf 1e1011 #define mod 100000000712 using namespace std;13 bool dp[M][M][M];14 int main()15 {16 int a,b,c,t;1... 阅读全文
posted @ 2013-09-27 21:01 _随心所欲_ 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 思路:首先给出几个结论:1.gcd(a,b)是积性函数;2.积性函数的和仍然是积性函数;3.phi(a^b)=a^b-a^(b-1);记 f(n)=∑gcd(i,n),n=p1^e1*p2^e2……;则 f(n)=∑d*phi(n/d) (d是n的约数) =∑(pi*ei+pi-ei)*pi^(ei-1).代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define M 5000510 #define inf 1e1011 #de 阅读全文
posted @ 2013-09-26 11:56 _随心所欲_ 阅读(273) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 30 下一页