2012年4月5日
摘要: //java大数import java.util.Scanner;import java.math.BigInteger;public class hdu1250{ public static void main(String args[]) { Scanner cin = new Scanner(System.in); int n; while (cin.hasNextInt()) { n = cin.nextInt(); if (n <= 4) { ... 阅读全文
posted @ 2012-04-05 22:00 Try86 阅读(220) 评论(0) 推荐(0)
摘要: //模拟#include <cstdio>#include <iostream>using namespace std;void swap(char &a, char &b) { char temp = a; a = b; b = temp;}int main() { int t, i; scanf ("%d", &t); while (t--) { int n, x, y; char s[9] = {"#ZJUTACM"}; scanf ("%d", &n); for (i=0 阅读全文
posted @ 2012-04-05 21:40 Try86 阅读(156) 评论(0) 推荐(0)
摘要: 设多重集的个数n = n1 + n2 + ... + nk;则该多重集的排列个数为:n!/(n1!n2!...nk!).//组合数+java大数import java.util.Scanner;import java.math.BigInteger;public class hdu1261{ public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger f1, f2; int []s = new int[26]; int n, sum; n = cin.nextIn... 阅读全文
posted @ 2012-04-05 21:04 Try86 阅读(401) 评论(0) 推荐(0)
摘要: //递推,f(i) = f(i-1) + 6 * (i-1); f[1] = 2, i>=2;#include <cstdio>#include <iostream>using namespace std;int f[10001];int main() { int i; f[1] = 2; for (i=2; i<10001; ++i) f[i] = f[i-1] + 6 * (i - 1); int t; scanf ("%d", &t); while (t--) { int n; scanf ("%d", 阅读全文
posted @ 2012-04-05 18:30 Try86 阅读(257) 评论(0) 推荐(0)
摘要: 实现自Matrix67!//二进制逆序//分治思想//程序读入一个32位整数并输出它的二进制倒序后所表示的数#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { n = (n & 0x55555555) << 1 | (n & 0xAAAAAAAA) >> 1; n = (n & 0x33333333) << 2 | (n & 0xCCCCCCCC) >> 2; n = (n & 阅读全文
posted @ 2012-04-05 12:53 Try86 阅读(392) 评论(0) 推荐(0)
摘要: //用异或运算交换两个整数#include <stdio.h>int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) { a = a ^ b; b = a ^ b; a = a ^ b; printf ("%d %d\n", a, b); } return 0;}//用位运算来取绝对值#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { 阅读全文
posted @ 2012-04-05 12:25 Try86 阅读(158) 评论(0) 推荐(0)
摘要: 实现自Matrix67!//定义:32位的整数的前16位为高位,后16位为低位//高低位交换#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { int s, s1, s2; s1 = ((1 << 16) - 1) & n; s2 = s1 ^ n; s = (s1 << 16) | (s2 >> 16); printf ("%d\n", s); } return 0;}//定义:32位的整数的前16位 阅读全文
posted @ 2012-04-05 12:18 Try86 阅读(444) 评论(0) 推荐(0)
摘要: 实现自Matrix67!//计算二进制中的1的个数//分治思想#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { n = (n & 0x55555555) + ((n >> 1) & 0x55555555); n = (n & 0x33333333) + ((n >> 2) & 0x33333333); n = (n & 0x0F0F0F0F) + ((n >> 4) & 0x0F0 阅读全文
posted @ 2012-04-05 12:13 Try86 阅读(203) 评论(0) 推荐(0)
摘要: 实现自Matrix67!//二进制中的1有奇数个还是偶数个//实现一#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { int c = 0; while (n) { c += n & 1; n >>= 1; } if (c & 1) printf ("奇数个\n"); else printf ("偶数个\n"); } return 0;}//实现二//分治思想#inc... 阅读全文
posted @ 2012-04-05 12:12 Try86 阅读(564) 评论(0) 推荐(0)
摘要: 参考自Matrix67!//二分查找32位整数的前导0个数//二分查找思想#include <stdio.h>int main() { unsigned int n; while (scanf("%u", &n) != EOF) { if (n == 0) printf ("32\n"); else { int s = 1; if ((n >> 16) == 0) {s += 16; n <<= 16;} if ((n >> 24) == 0) {s += 8; n <<= 8;} .. 阅读全文
posted @ 2012-04-05 12:10 Try86 阅读(640) 评论(0) 推荐(0)
摘要: 详细理论请参考Matrix67!//去掉最后一位,相当于除于2#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { printf ("%d\n", n>>1); } return 0;}//在最后加一个0,相当于乘于2#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { printf ("%d\n&q 阅读全文
posted @ 2012-04-05 07:39 Try86 阅读(204) 评论(0) 推荐(0)