你好玉米下载126关攻略,一条线连接两个同色炸弹怎么弄

问题1 :题目:一种石头,在某一高度扔下就会碎,在这个高度以下不会碎,高度以上一定碎。现在有4个石头,1000层的楼房,需要测定这个石头破碎的高度。求最少多少次一定可以测出来。
题目:一个100层的大厦,你手中有两个相同的鸡蛋(玻璃球或围棋)。从这个大厦的某一层扔下鸡蛋((玻璃球或围棋))就会碎,用你手中的这两个鸡蛋(玻璃球或围棋),找出一个最优的策略,来得知那个临界层面。...
文件系统的两个目标:地址独立(通过文件或文件夹实现)、地址保护(访问控制)。
1. 主动控制:文件能被那些用户RWX访问。访问控制表(ACL)(存放在内核空间,有OS进行设置和访问,用户不能直接修改ACL)
2. 能力表:用户拥有钥匙。存放用户能够访问哪些文件。
如果ACL或能力表非常大,那么执行访问控制的时间成本将增大,需要优化所需要的时间,这个手段就是保护域。
保护域就是将访问...
Slice的全称:Specification Language for Ice,是Ice自己的特殊语言,一种用于使对象接口与其实现相分离的基础性抽象机制。Slice 建立在客户与服务器之间的合约,用以描述应用所使用的类型和对象接口。Slice描述独立于实现语言,所以客户实现语言是否与编写服务器所用的语言相同没有任何关系。
因为Slice主要对接口和类型的定义和描述,没有实现部分。C++的服务端,...
#define N 501
ll d[N][N];
ll q(ll n, ll m)
if ((n & 1) || (m & 1)) return 0;
if (n == 1 || m == 1) return 1;
if (n & m) return q(n, n);
if (n == m) return q(n, m - 1) + 1;
求一个数能被平方数组合的种数int main()
ll d[1000];
for (i = 1; i & 200; ++i) {
if (i * i &= 1000) {
d[i] = i *
ll ans[1005] = {0};
ans[0] = 1;
for (i = 1; i &...
(n & k) == k  结果是奇数
否则,结果为偶数...
源代码如下:
char T[1000005];
char P[10005];
int next[10005];
void Get_Next(char *P)
int TLength = strlen(P);
next[0] = -1;
int i = 0, j = -1;
while (i & TLength) {
if (j == -1 || P[i...
一、同步:定时器中执行一个阻塞等待
int main()
boost::asio::io_
boost::asio::deadline_timer t(io,boost::posix_time::seconds(5));
std::cout && &Hello, world!\n&;...
客户端向服务器端发送请求,服务器生成当前时间的字符串并返回给客户端,客户端输出这个时间字符串
Client客户端:
using boost::asio::ip::
int main(int argc, char* argv[])
if (argc != 2) {
std::cerr & && std::...
一、异步定时器的使用
boost::asio::io_
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
boost::asio::deadline_timer t1(io, boost::posix_time::seconds(...
【题目描述】
求第k个二进制表示1的个数为偶数的数
【解题思路】
要么是2 * k
要么是2 * k + 1...
求所有0到1的最短距离
int tag[];
int main()
int cases, a,
scanf(&%d&, &cases);
while (cases--) {
scanf(&%d%...
【解析】分成两段
int main()
while (scanf(&%d&, &n) == 1) {
int i, end = sqrt(n * 1.0) + 1;
int ans[10005], index = 0;
int flag = -1;
for (i = 1; i &= ++i) {
if (n % i == 0) {
int i = 1;
int main()
//能通过编译,但i是未定义的值
下水道井盖为什么是圆的
展示一段自己觉得写过的最好的程序
数组在哪里分配空间(堆or栈)...
1. 求sizeof
struct you
int main()
printf(&%d %d...
早上8:26收到的短信让我9:30去就业中心面试。起床打印了成绩单和建立(三份)就往实验室刷卡,刚好陈文老师过来408,得知我要参加面试,&报我的名字啊!&,他说他跟那边的航总很熟,因为之前他去面试过这家公司,他们很想要陈老师留下,08年都年薪12W,年底奖金是一辆车。这几年他们一直都在跟陈老师联系,想要陈老师去公司,人才嘛。
    陈老师帮我修改简历并打印,把获奖经历调到项目经验的前面,同时...
一、启动BIOS,准备实模式下的中断向量表和中断服务程序
【实模式】一个20位的存储器地址空间(1M),可以直接通过软件的方式访问BIOS以及周边硬件,没有硬件支持的分页机制和实时多任务的概念,CPU的开机状态都是实模式。
1 在RAM中什么程序也没有的时候,BIOS来完成加载软盘中操作系统的任务。
2 【BIOS的启动原理】BIOS程序由硬件执行,CPU的硬件都设计为加电即进入16位实模式...
【题目意思】
把给定图涂颜色,问黑色点的最大个数
补图的最大独立团,可以用dfs做
int m[101][101];
int color[101];
int ans[101];
int a, b, maxn,
void process()
if (black & maxn) {
for (i = 1; i &= +...
伸展树的优势:
由于Splay Tree仅仅是不断调整,并没有引入额外的标记,因而树结构与标准BST没有任何不同,从空间角度来看,它比Treap、Red-Black Tree、AVL要高效得多。因为结构不变,因此只要是通过左旋和右旋进行的操作对Splay Tree性质都没有丝毫影响,因而它也提供了BST中最丰富的功能,包括快速的拆分和合并(这里指的是将原树拆分成两棵子树,其中一棵子树所有节点都比...
1 strcpy函数的标准写法:
/*==========================================================*\
| 笔试题strcpy写法
| 返回char *的原因:
返回strDest的原始值使函数能够支持链式表达式,
增加了函数的“附加值”。同样功能的函数,
如果能合理地提高的可用性...
#define NODE_NUMBER
#define MOD 7
struct hash
struct hash *
hash() { next = NULL; }
} * ht[NODE_NUMBER];
int hash_insert(int k)
int key = k % MOD;
if (ht[key] == NULL)...
for (i = 1; i &= 1000; ++i) {
d[i * i]++;
for (j = i + 1; j * i &= 1000000; ++j)
d[i * j] += 2;
1 cat & file
who | wc -l
chmod +x file
最简单的脚本了。
2 first=aaa second=bbb    当行可进行多个赋值
fullname=“aaa bbb”    值中有空格要用引号
full=“$first   $second”    将几个变量连接起来要用引号
3 echo -n不输出换行符,只用于...
typedef struct sockaddr SA;
int open_clientfd(char * hostname, int port)
struct hostent *
struct sockaddr_in servera...
时间限制: 1000ms 内存限制: 65536kB
馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇。在比方说“johnsonjohnson”、“duckduck”,这些词汇虽然看起来是一些词汇的单纯重复,但是往往都是一些特殊品牌的词汇,不能被拆分开。为了侦测出这种词的存在,你今天需要完成我给出的这个任务——“找出用户请求中循环...
1. 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 
2. 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
3. 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中;
4. 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读...
【题目描述】
百度应用平台上有很多有趣的应用,每个应用都由一个开发者开发,每个开发者可能开发一个或多个应用。百度的工程师们想把应用尽可能好的推荐给用户。
研究发现,同一个开发者开发的程序的图标有很大的相似性。如果把同一个开发者开发的应用放在一起,用户很快就会厌倦相似的图标,如果把这些图标穿插摆放效果就会好很多。
现在工程师想给用户推荐来自m个开发者的n个应用,在推荐的时候这些应用的图...
} wo[100];
int main()
char s[20];
while (gets(s)) {
int d[10][10] = {0};
int g[10][10] = {0};
for (i = 1; i &= 8; ++i)
for (j = 1; j &= 8; ++j)
#define MAX 10
pthread_t thread[2];
pthread_mutex_
int number = 0,
void * thread1(void * x)
printf (&thread1 : I'm thread 1\n&);
转自:http://lengxiaohua.net//legend-of-phoenix-lyric/
凤凰传奇(Legend of Phoenix,简称LP,注意和Linkin Park区分,不是一个级别的)作为全宇宙第一天团可以说是红遍了大江南北,其音乐几乎涵盖了人类所能命名的所有曲风和音乐形式,这和他们音乐里炫酷的歌词是分不开的,在听了不下一万多遍LP的歌曲之后,我渐渐...
【题目描述】
简单字符串处理
【解题思路】
暴力可以解决,但是需要高效的方法,不然会超时
stl确实是个好东西啊
int main()
int tt, i,
char s[1005];
while (cin&&tt) {
while (tt--) {
scanf(&%d%d%s&, &a...
【题目描述】
5瓶可乐换一瓶,一共喝n瓶,至少要多少钱
【解题思路】
n - (n - 1) / 5...
bash相关环境配置文件在~/.bashrc
标准模板范例如下:
#!/bin/bash
# Program:
This program shows &Hello World!& in your screen.
# History:
famousDT First release
# main environment declare
PATH=/u...
【题目描述】
求一个图中最大环的点个数
vector g[4445];
int visited[4445];
int num[4445];
void dfs(int v, int t)
visited[v] = 1;
int l = g[v].size(),
for (i = 0; i & ++i) {
if (visite...
【题目描述】
给一组序列和除数d,求连续子序列的和能整除d的个数。
int f[1000005];
int main ()
scanf(&%d&, &t);
while (t--) {
memset(f, 0, sizeof(f));
scanf(&%d%d&, &d, &n);
int sum[50005] = {0}, ans...
转载自:/billdu/item/c6ddaf6a8842830
代码如下:
char A[50], B[50];
/* 求[1, upper]中后last_length位是last的Lucky Number总数 */
ll stat_n(char *upper, char* last, int last_length)
/*==========================================================*\
| 第一次windy如果取后,让fgj取x,windy都能取b+c-x就能赢
\*==========================================================*/
int main()
while (...
6.有一种结构如下图所示,它由层的嵌套组成,一个父层中只能包含垂直方向上或者是水平方向上并列的层,例如,层1可以包含2、3、4三个垂直方向上的层,层2可以包含5和6两个水平方向的层,在空层中可以包含数据节点,所谓的空层是指不包含子层的层,每个空层可以包含若干个数据节点,也可以一个都不包含。在这种结构上面,我们从垂直方向上划一条线,我们约定每一个子层中我们只能经过一个数据节点,在这种情况下,每条线可...
3.c与c++分别是怎样动态分配和释放内存的,有什么区别?
c是malloc和free,c++是new和delete,区别如下:
(1)new、delete 是操作符,可以重载,只能在C++中使用。
(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。
(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。
(4)malloc仅仅分配内存,free...
2.线程和进程有什么区别,“线程安全”怎么理解?
(1)简而言之,一个程序至少有一个进程,一个进程至少有一个线程。
(2)线程是处理器调度的基本单位,但进程不是。
(3)线程的划分尺度小于进程,使得多线程程序的并发性高。
(4)另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
(5)进程和线程的主要差别在于它们是不同的操作系统资源...
1. 单词a中任意字母交换位置变为单词b,我们就称单词a,b为兄弟单词,如 army 与 mary为兄弟单词。现给一个单词字典,用户输入一个单词,找出字典中所有的兄弟单词,请写出你的解题思路和算法。
【解题思路】:在编程珠玑上第二章结束出有此题的解析(18-19页),首先将字典里的单词做这样的处理
如字典有:pans pots opt snap stop tops
处理结果如下:
#define WORDMAX 100
char word[256];
char sig[256];
} wo[WORDMAX];
char oldsig[256];
bool cmp(my a, my b)
if (strcmp(a.sig, b.sig) & 0)
int main()
#define MAX_LINES 2048
#define MAX_LINE_LEN 128
#define MAX_DOCS 128
#define MAX_WORDS 65536
#define MAX_WORDS_PER_LINE 128
struct node {
struct node *
char lines[MAX_LI...
/*==========================================================*\
| gen $1 distinct integers from U[0,$2)
\*==========================================================*/
#define MAXN 2000000
int x[MAXN];...
/*==========================================================*\
| 《编程珠玑》位图排序:bitmap sort
\*==========================================================*/
#define BITSPERWORD 32
#define SHIFT 5
#define MA...
【题目描述】
给出几对虫子交配,问是否有同性恋。
【解题思路】
并查集变形,把每条虫的所有对象合并
int p[10001];
int rank[10001];
int other[10001];/* 每个虫的对象 */
void make_set(int x) {
rank[x] = 0;
other[x] = -1;/* 初始化每个虫的对象 */
【题目描述】
Your task in this problem is to determine the number of divisors of C(n,k).
【解题思路】
1.约数个数定理:设n的标准质因数分解为n=p1^a1*p2^a2*...*pm^am,则n的因数个数=(a1+1)*(a2+1)*...*(am+1).
2.n!的素因子 = (n-1)!的素因子 + n的...
int d[10][10];int row[10][10], col[10][10], square[10][10];
int INDEX;
} wo[100];
int getsquare(int i, int j)
return i / 3 * 3 + j / 3;
int check(int x, int y, int k)...
/*==========================================================*\
| Hugo Heavy要从城市1到城市N运送货物,有M条道路,每条道路都有
| 它的最大载重量,问从城市1到城市N运送最多的重量是多少?
\*==========================================================*/
/*==========================================================*\
| 编辑距离:
| d[i, j] = minimum(
| d[i-1, j] + 1, 在b上j位置删除字符(或在a上i-1位置插入字符)
| d[i, j - 1] + 1, 在b上j-1位置插入字符(或在a上i位置删除字符)
| d[i-1, j - 1] + co...
int main()
priority_queue, greater &
p.push(make_pair(1, 2));
ll d[5845];
char s[][10] = {&th&, &st&, &nd&, &rd&, &th&, &th&, &th&, &th&, &th&, &th&};
1203 先拿掉后面最长的...
题目大意:众所周知冒泡排序算法多数情况下不能只扫描一遍就结束排序,而是要扫描好几遍。现在你的任务是求1~N的排列中,需要扫描K遍才能排好序的数列的个数模。注意,不同于真正的冒泡排序算法,只要数列有序就立刻停止,而不用再检验一遍。
估计多数人都是找规律吧,先看出递推,然后求出通项……这个题只有找出通项公式才能通过,所以首先公布答案:
K!((K + 1) ^ (N...
所谓鸽巢原理,即n+1只鸽子,只有n个巢,则至少有一鸽巢有两只鸽子。
鸽巢原理理解起来并不困难,有些题目需要转换一下。
    题意:有n个数,可能相同也可能不相同,从中取出一些数,使它们的和能被c整除(c
    解:构造序列si,使得
          s1 = a1
          s2 = a1 + a2
          s3 =...
1.如果Linux系统因为设置错误导致无法启动,可以使用“linux rescue”进入救援模式,能够救回linux而不需要重新安装...
int p[10001];
int rank[10001];
void make_set(int x) {
rank[x] = 0;
int find_set(int x) {
if (x != p[x])
p[x] = find_set(p[x]);
return p[x];
void link(int x, int y) {
if (rank[x] &...
【题目描述】
一个数组5000000,去掉n1个最大的,n2个最小的,n1+n2
【解题思路】
方案1:运用快排中第k小的数分别求出两个分界点,再从总数中减去即可,但是有内存限制,不能开这么大的数组,WA了无数次以后MLE了
方案2:用两个数组分别存放最大的n1个数和最小的n2个数,不断更新,然后从总数中减去这两个数组中的内容即可
int main()
ll n1, n2,...
int main()
while (t--) {
int times = 1, steps = 0;
while (x &= times) {
printf(&%d\n&, step...
【题目描述】
将一个图的所有节点分入两个子集,使横跨这两个子集的边的和最大值。
【解题思路】
随机改变一个点的位置,算出权和,重复200000次,取最大值输出。
int part[31], my_map[31][31];
int main()
while (scanf(&%d&, &n) == 1) {
for (i = 1; i &=...
【题目描述】
一个row*col的矩阵,给你起点的位置(x,y),还有其他n个目标点,问你从起点出发,走过每个目标点之后返回到你的起点,最短的路径是多少?
【题目描述】
由于点不多,可以直接全排列解决,运用dfs
bool visited[21];
int s, t, x, m, n, path, cnt, ans, my_map[21][2];
void dfs(int a, int b...
【题目描述】
多米诺骨牌覆盖
【解题思路】
1.fi肯定可以由fi-1再竖着摞两块砖;
2.fi还可以由fi-2再横着摞四块砖;
3.fi还可以是以下情况*2,即横两块、竖一块,竖的一块在两头;
命名这种情况为a其中--和 | 表示一块横砖和一块竖砖;
                                              |
【题目描述】
把B个气球分给N个城市,使得每个城市竞争这些气球的人最少
【解题思路】
官方解答,二分
#define maxpop 5000000
int a[500000];
bool ok(int x)
int c = 0,
for (i = 0; i & N && c &= B; ++i)
c += (a[i] + x - 1) /
【题目描述】
给出a,b,c的组合2,3,4,可能通过
求出14吗?
【解题思路】
参考官方解题报告
const int MAXVAR = 5;
typedef struct expr {
int values[MAXVAR];
string ex...
【转载自】http://blog.ac521.org/?p=123
【题目描述】
给定一个长n的循环队列(n=0;
【解题思路】
首先用循环序列的一般处理方法,两个接在一起,然后处理出来sum,使用单调队列,滚动求长n的子序列的最小值。如果最小值减去前面的sum仍然是非负的,则计数。
#define N 1000002
int num[N * 2];
int q[N * 2], p[N...
【转载自】http://blog.ac521.org/?p=135&replytocom=24
【题目描述】
给你三个顶点,这三个点是一个正多边形上的顶点,问这个正多边形最少有多少个边?
【解题思路】
三个点,三角形–&外接圆–&必定也是该凸多边形的外接圆-
我们可以把三个点当做一个三角形放在它的外接圆上,然后求出每个角的度(即三角形分的三个弧度所对应的圆周角),设顶点数为n,我们只需计...
【转载自】http://blog.ac521.org/?p=126
【题目描述】
找一个数D,是一个平方数,且他是由
【解题思路】
筛出所有素数, 然后求n!中每一个素数出现多少次,出现偶数次的必然是D的因子。出现奇数次的,减去一个即可,
因为是该素数必定小于等于n,所以n!中必有一个数与该素数相等,去掉这一个不影响其他的,等下的还是D的因子。
但是,筛素数+快速幂...TLE了。我们...
【题目描述】
一个渡河问题,船每次最多可以载n辆车,单程渡河的时间是t,有m辆车要渡河,问最少时间把所有车运过河去的时间是多少,这个情况下,最少的运输次数是多少。
【解题思路】
#define max 1000000
int a[max];
char b[max][10];
int main()
long int ncase, l, m, sum1, sum2, t...
【题目描述】
意思就是求sigma(gcd(i,n)),其中1
【解题思路】
ll d[500005];
int main()
ll i, j, index = 0;
for (i = 0; i & 100000; ++i) {
if (isPrime(i)) {
d[index++] =
while (scanf(&%lld&,...
【题目描述】
求第n个回文数
【解题思路】
首先求出一共k位长的数一共多少个回文,然后对半开
/* list[i]表示位数为i的满足回文数要求共有list[i]个 */
ll List[20] = {0, 9, 9, 90, 90, 900, 900, , 9, 0, 000000,...
估计只能得40-50分,粗心做错了几个题目,比如五角星五个点,看那个点出发能够遍历完每条变仅一次,想当然选了一个不和其他点对称的,还有一个就是SOJ上“寻找临界楼层”的题目,1到100中猜一个数,如果小了会提示你,如果大了仅仅提示这一次,以后就只说对或错,问最佳猜数策略,第一个猜的是多少?我答的最少19次,第一次10.其实答案是第一次14,最多14次,第二次14+13,第三次14+13+12……...
周五(13号),笔试完不到一星期(14号)收到一面通知,其实很多人在这之前都已经收到一面的通知了。
第一次面试,心里很紧张,本来是11点面试,提前一个小时到。
面试官一上来就让我写代码。
第一个程序(写代码):把整数123转化成321,很简单,不到3分钟就写好给他了,他说好,写下一个
第二个程序(写代码):两个有序的数组,求交。写了接近十分钟给他看,其实思想不太对,而且效率不高,我说可以提...
4月15号下午五点半收到腾讯发的信息&16号早上9:40参加二面&,一会儿还接到一个电话通知明天面试的事,可能是怕没看到信息。16号早上9:58被叫到我的名字,面试官看见我就跟我说“昨天下午给你打电话,一直都没人接”,我甚是诧异,昨天下午压根没有接到电话啊。接着他让我做个自我介绍,等我说完后他问我本科学得比较好的课程有哪些,我说操作系统、数据结构等,他问:
“操作系统最感兴趣的是什么?”我说是进...
又是动态规划
int ans[1125][15] = {0};
int main()
int n, k, prim[1000], i, x = 0, len = 187,
int d[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,
【题目描述】
桌子上有N枚硬币,翻转X次(必须是N次,不能多也不能少)。同一硬币可以翻多次。使得不论原始状态如何,翻完后硬币是同一面朝上。
【解题思路】
当N为偶数时无解,当N为奇数时结果为N-1.由于解法简单,就不贴代码了~
1. 若N为偶数。两种硬币的组合可能是(奇数+奇数)或者(偶数+偶数)。当正面硬币数目和反面硬币数目均为偶数时,想要同一面朝上,翻转次数必为偶数。...
【题目描述】
有n堆石子,每堆个数不一样,每次必须取至少1个,最多把一堆取完。最后取完的输,问John是先手,问是否会赢?
【解题思路】
把所有结果异或,如果不是0就赢,否则输.
对所有都是1的情况特殊考虑
int main()
while (cases--) {
int i, x, ans...
【题目描述】
a*b的棋盘,最下角*可能是白色或黑色;
问:里面包好多少个8*8的棋盘,这个棋盘最下角必须是白色
【解题思路】
拿16*16的比划一下就知道了,很简单
int main()
while (cin&&a&&b&&c, (a || b || c)) {
if ((a & 1) && (b & 1))...
排序,然后看看第一个节点和最后有一个节点,第二个节点和倒数第二个节点……的中点是否完全一样即可...
/*==========================================================*\
| [题目描述]有N种石头(每种数量无限)题目给出每种的长宽高
| 先要求将其按底面积递减的顺序从下往上堆(注意是严格递减,对应边也不能相等)
| 问最多可以堆多高?
| [解题思路]分析:将每块石头变成3块,block代表所有石头,有3个成员x,y,z. 然后将其按照底...
/*==========================================================*\
| 二分搜索答案
\*==========================================================*/
int main()
int cases = 1;
while (cin&&n, n != -1) {...
/*==========================================================*\
| [扩展眼欧几里德]给定 a b d找到满足ax+by=d 的令|x|+|y|最小
| 参考线性同余方程 g=gcd(a,b) , ax0+by0=gcd(a,b)
| 程的一组解: x=x0*d/g; y=y0*d/g;
| 方程的全部解:x..=x+...
【题目描述】
8*8的棋盘被扣掉两个,问还能用2*1的瓷砖完全覆盖不?
【解题思路】
就是把棋盘染色成国际象棋黑白相间的棋盘,如果两个格子同色则不可,否则可以。
if (((a + b) & 1) == ((c + d) & 1))同奇偶,不行...
被系统弄挂了,问题出在最大值没处理好。
Problem Statement
This problem statement contains superscripts and/or subscripts. It may not display properly outside the applet.
Little Rudolph had an important...
AC的方法:
int d[400000];
int ans[4000000];
int main()
int i, j, k,
for (i = 1; i &= 181; ++i) {
d[i] = i *
ans[d[i]]++;
for (i = 1; i &= 181; ++i) {
for (j = j &= 181 && d[i] + d[...
【题目描述】
给出1, 3, 9, 27, 81……
问第n个集合,集合按照和从小到大排列。
【解题思路】
//数学好题
//定义两个三元组I(xi,yi,zi)和J(xj,yj,zj),(可以看做是空间中的点)
//他们的距离为D(I,J)=max{xi-xj,yi-yj,zi-zj}-min{xi-xj,yi-yj,zi-zj},
//给定n个三元组(n&=200000),求任意两个三元组的差的和
//抽化出来的模型是 max(a,b,c)-min(a,b,c),这个东西吧他放在数轴上 a,b,c...
(n,k)(k&=n)的奇偶性取决于(n-k)与k的二进制表达式是否存在同一位上的两个数码均为1,若存在,则为偶数,反之为奇数
int main(){
while(scanf(&%d%d&, &n, &k)!=EOF){
printf(&%d\n&, k&(n-k)?0:1);
参考资料:【数学通讯(200...
int main()
int cases, x = 1;
while (cases--) {
int a, b, c,
cin&&a&&b&&c&&d;
printf(&Problem set %d: %d / %d, base 7 digits %d through %d: &, x++, a, b, c, d);
这个题目类似 POJ 2506,不过是大矩形的高度增加了。
fun[n] = 3 * fun[n-2] + 2 * fun[n-4] + 2 * fun[n-6] + 2 * fun[n-8]+…… 直到方括号内表达式的值为0。
解释一下,3 * fun[i-2] 是最右边有 3 行 2 列的三种情况。
后面的2*fun[i-X],则是最右边有 X 列类似以下的结构的情况:...
/*==========================================================*\
| 求2^k&=n!,两边同时log10,打表简化
\*==========================================================*/
int main()
int d[50...
ll d[100][100];
ll ans[100][100];
int main()
while (cin&&n, n != -1) {
getchar();
for (i = 1; i &= ++i) {
for (j = 1; j &= ++j) {
scanf(&%c&, &c);...
【题目描述】
从1开始,1-&01,0-&10
问第n步以后有多少对0
【解题思路】
要产生一对'00',只能由'01'产生,而‘01’可由'1'或‘00’产生,所以f[i] = f[i-2]的‘1’的个数 + f[i-2]的’00‘的对数
先简单列几个
0 1 1 3 5 11 21//0的对数
1 2 4 8 //1的个数
第一个数是0,如果n被2整除2*前面+1,否则2*前面...
【题目描述】
N个小孩围成一个圈,老师 顺时针隔 0, 1, 2, 3,。。。个小孩发糖,问每个小孩是否都能领到糖。
【解题思路】
解法很简单 当N是2^K时输出YES,否则输出NO。
int main()
while (scanf(&%d&, &n) == 1) {
if (n & (n - 1)) printf(&NO\n&);
else printf...
清明节从4月2号放假到4月4号,可以算个小长假吧,这样的机会很难得,虽然这学期一直都在实验室打着酱油,每天high得不行,但一到周末却始终放不开。我长着一颗豪放的心,但往往不能想做什么就会去做,好不容易有个想法,总是会找各种理由打消掉这些念头,对自己的决定始终摇摆不定,极少按照自己的意愿去做事。
      心里有想清明放假骑车出去玩的念头,由来已久,可能有一个月我都常常念叨着吧,身边的朋友听了...
第一章、概述
1.Linux操作系统是UNIX操作系统的一种克隆系统,诞生于日(第一次正式向外公布),它的成长依赖于:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet。
2.UNIX操作系统是贝尔实验室Ken Thompson于1969年夏在DEC PDP-7小型计算机上开发的分时操作系统。
3.MINIX系统是由Andrew S. Tan...
【题目描述】
汇率兑换问题,给出 n 天的汇率(US 与 Canada),求给出1000Canada dollars,进行反复兑换,最终能得到的Canada dollar有多少?(注意:每进行兑换一次要扣除3%的税费),输入每天 1 美元可以兑换的加元数量。
【解题思路】
简单题,只是处理精度要有点技巧。因为每次兑换会舍去美分。
dp[i][0]:表示第i天最多的Canadian;...
int main()
while (scanf(&%lf&, &n) == 1 && n) {
int tag = 0;
if (n & 0) {
if (n == 1) {...
将n用-1,0,1表示,如20=1*3^3+(-1)*3^2+1*3^1+(-1)*3^0
所以20+3^0+3^2=3^1+3^3
即1,9 3,27
平衡三进制具体转化方法
先转化为用0,1,2表示的3进制,然后通过“借位”转换
若对应的系数为2,则变为-1,下一位+1
若对应的系数为3,则变为0,下一位+1
为0或1时不变
原理即是如果第i位为1,可以用砝码抵消,如果是2...
【题目描述】
围着桌子坐着n个人,现在要将每个人左右的人交换一下,最少交换多少次?
【解题思路】
如果奇数个人,找一个基准点
如果偶数个人,找两个基准点(注意特殊处理除了基准点还有奇数对数的情况,详见代码)
int main()
while (cases--) {
if (x &= 2) p...
【题目描述】
已知储蓄罐满时的质量f以及空时质量e,有n种硬币,每种硬币的价值为p,质量为w,求该储蓄罐中的最少有多少钱?
int p[501], w[501];
int dp[50005];
int main()
while (cases--) {
cin&&e&&f;
int W = f -...
这个题目就是找在1~N之间互质的三个正整数x、y、z,并满足x^2+y^2=z^2,判断这样的数有多少对,以及跟1~N中与这些互质正整数无关的正整数的个数。
其实比较关键的是对上面那个式子 x^2+y^2=z^2 进行变形,减少一个变量为
(r^2-s^2)^2 + (2*r*s)^2 = (r^2+s^2)^2,
这样只有两个变量存在,可以减少一轮循环。于是题目就变成了找这样的r和s,当r...
【题目描述】
现在要买若干种价值的珍珠,但买某种珍珠必须多付10颗此种珍珠的价钱,一颗珍珠可以用比它贵的珍珠充数,因此有时候用贵的珍珠来代替便宜的可能更省钱,输入要买的若干种珍珠,在可用高价珍珠充数的条件下,问最少需要花费多少钱.
int d[105][2];
int dp[105][105];
int main()
while (t--) {...
/*==========================================================*\
| 求第n个数字。
| 首先求出在那一组,其中[1],[12][123]等是一组
| 然后求出在哪一个数,最后确定哪一位
\*===============...
/*==========================================================*\
| 动态规划
| 设ch[1]..ch[n]表示字符串1至n位,i为左游标,j为右游标 ,则i从n递减,j从i开始递增。
| min[i][j]表示i和j之间至少需要插入多少个字符才能对称,初始置全0 ,
| 我们最终需要得到的值是min[1][n].
| PS:short...
一、词法陷阱
1.x---y与x- --y是不一样的。
2.int x = 'aaa'; /* char x,在VS中结果是最后一个字符的值 */
   printf(&%x\n&, x); /* 616161 */
3.C语言不允许嵌套注释
4.写一个测试程序,无论是允许嵌套注释的编译器和不允许的都能够通过编译,但是结果不同。
   /*/*/0*/**/1
   允许的会翻译...
实在没啥好说的,仅作留念
int main()
scanf(&%d&, &t);
while (t--) {
scanf(&%d%d&, &a, &b);
int d[1000];
int index = 0;
int flag = 0;
while (1) {
int tmp = d[index]...
自己写了个动态的trie被tle了,悲剧
此题还能够先排序,然后用strncmp就可以判断字符串是否被后面的包含。
代码如下:
bool cmp(char *x,char *y)
return strcmp(x,y)&0;
int main()
int cases,number,x,i,j,
char **d=new char*[10000];
for(i=0;...
直接上code
struct point
} wo[205];
bool cmp(point a, point b)
if (a.x & b.x)
if (a.x == b.x) return a.y & b.y;
int main()
int cases, i, j,...
int main()
int d[105][15] = {0};
for (i = 2; i &= 100; ++i) {
int ans = 1;
int visit[105] = {0};
visit[ans] = 1;//重点
while (1) {
int t = ans * 10 /
d[i][t]++;
【题目描述】
选出一些行使得这些行构成矩阵的每一列都有且只有一个1。
【接替思路】
直接判断每一行是否选中。
此方法并不高效。
int Map[16][300];
bool used[300];
bool match()//判断所选取的行是否让每一列都恰好有一个1
for (i = 0; i & ++i)
很久以前写过,现在把我的递归版本代码贴出
struct tree
struct tree * left_
struct tree * right_
tree * create_tree(char pre[], char in[], int len)
if (len == 0) return NULL;
tree * t...
转自hi,baidu
【问题描述】:
       在计算机中,使用float或者double来存储小数是不能得到精确值的。如果你希望得到精确计算结果,最好是用分数形式来表示小数。有限小数或者无限循环小数都可以转化为分数。比如:
0.9 = 9/10
0.333(3)= 1/3(括号中的数字表示是循环节)
当然一个小数可以用好几种分数形式来表示。如:
0.333(3)= 1/3 = 3...
【题目描述】
有一组数,很多很多个数,里面有一个数出现了超过一半次,请你把它找出来.
int find_over_half(int d[], int n)
int i, sum = 0,
for (i = 0; i & ++i) {
if (sum == 0) {
if (d[i] == t)...
转自人人网。
阶乘(Factorial)是个很有意思的函数,但是不少人都比较怕它,我们来看看两个与阶乘相关的问题:
1. 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
2. 求N!的二进制表示中最低位1的位置。
分析与解法
有些人碰到这样的题目会想:是不是要完整计算出N!的值?如果溢出怎么办?事实上,如果我们...
SOJ-3261只是把黑球和白球交换,对于SOJ来说,结果只和黑球数量有关,而下面的只和白球数量有关。
【题目描述】
有一个桶,里面有白球、黑球各100个,人们必须按照以下的规则把球取出来:
1、每次从桶里面拿出来两个球;
2、如果是两个同色的球,就再放入一个黑球;
3、如果是两个异色的球,就再放入一个白球;
问:最后桶里面只剩下一个黑球的概率是多少?
【解题思路】
思路1:找...
首先给出Catalan数的计算公式Catalan=C(2*n,n)/(n + 1)。
【解题思路】这道题目是典型的凸多边形划分问题,直接套用公式即可。
SOJ-2114(栈):典型的出栈顺序问题。
SOJ-2404(The midterm exam of algorithm):典型的二叉树个数问题。
SOJ-1247(球迷购票问题):
【题目描述】
球赛门票的售票处规定每位购票者限购一...
题意:已知一个n*n的矩阵A,和一个正整数k,求S = A + A2 + A3 +
… + Ak。
思路:矩阵快速幂。首先我们知道 A^x 可以用矩阵快速幂求出来(具体可见poj 3070)。其次可以对k进行二分,每次将规模减半,分k为奇偶两种情况,如当k = 6和k = 7时有:
      k = 6 有: S(6) = (1 + A^3) * (A + A^2 + A^3) = (1...
算法导论362页,例子
#define EDGE 2505 * 4
#define N 505 * 2
struct EDGE_
} e[EDGE];
int n,//n是顶点数,m是边数
int d[N + 5];
【题目描述】
给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值
【解题思路】
一开始二分的上界为n天花费的总和(相当于分成1份),下界为每天花费的最大值(相当于分成n份),然后二分,每次的mid值为(上界 + 下界)/ 2,然后根据mid值遍历n天花费,对n天的花费进行累加,每当超过mid值 份数+...
大概意思就是:
数组sum[i][j]表示从第1到第i头cow属性j的出现次数。
所以题目要求等价为:
sum[i][0]-sum[j][0]=sum[i][1]-sum[j][1]=.....=sum[i][k-1]-sum[j][k-1] (j
中最大的i-j
将上式变换可得到
sum[i][1]-sum[i][0] = sum[j][1]-sum[j][0]
可以暴力破解,这里贴的代码没有模版
int who[Max], yes[101],
int len, n,
int ans[Max],
int check(int mid)
int i, j, k, t, s, flag = 0;
for (i = 2; i &= i = j + 1) {
for (; height[i] & mid && i &=...
const int Max = 200001;
int num[Max];
int r[Max * 3], sa[Max * 3];
int rank[Max], height[Max];
int wa[Max], wb[Max], wv[Max], wd[Max];
#define F(x) ((x) / 3 + ((x) % 3 == 1 ? 0 : tb))
#define G(x) ((x...
/*==========================================================*\
| 后缀数组:
| 这里num[0, n-1]为有效值,就是输入的字符串稍稍转化而成的数组
| sa[1~n]为有效值,sa[i]=a则代表排在第i位的是第a个后缀。
a属于[0~n-1]
| rank[0~~n-1]是有效值
rank[i]=b则代表第 i 个后缀排在...
有点难以理解,大概知道意思。需要日后深入研究。
const int Max = 20001;
int num[Max];
int sa[Max], rank[Max], height[Max];
int wa[Max], wb[Max], wv[Max], wd[Max];
int cmp(int *r, int a, int b, int l) {
return r[a] == r[b...
【题目描述】
给出a和b,a通过操作
至少几步能够到达b。
【解题思路】
首先要想到用bfs
要点1:有个搜索上界就是b*2;
要点2:对访问过的点要标记,避免重复搜索。
int flag[1000005];
int main()
while (scanf(&%d%...
【转载思想】
题目意思就不说了,这里主要说一下做法!
我们把蛇连同它的攻击范围看做一个圆,再把圆抽象成一个点!点与点之间有边连接仅当两个点代表的圆有公共面积!然后我们在把上边界和下边界各抽象成一个点(S和T),同样上边界与点之间有边连接仅当点代表的圆与上边界相交,同理,可得下边界与点之间的边关系!
这样处理以后如果有从左到右的路径,当且仅当不存在S到T通路!只要深搜或者广搜即可!但是题目还要...
自认为此题有个bug
#define NUMBER 500005
int p[NUMBER + 5];
int rank[NUMBER + 5];
void make_set(int x) {
rank[x] = 0;
int find_set(int x) {
if (x != p[x]) p[x] = find_set(p[x]);
return p[x];...
二分求未知数
int main()
double x, y,
while (cin&&x&&y&&c) {
double low = 0.0;
double high =
while (low &= high) {
mid = (low + high) / 2;
double test = c * (sqrt(x * x -...
【解题报告】已知三角形的顶点坐标为(xx1,yy1),(xx2,yy2)和(xx3,yy3),要求外接圆圆心坐标(x,y),有圆心O到三个顶点A,B,C距离相等,可得两个方程,联立求解这两个方程,即可得外接圆圆心坐标,而根据已经求得的圆心坐标和向量旋转公式就可以求出正多边形其它顶点的坐标,将向量OA逆时针旋转t角度的向量OB,则向量旋转公式为:(B点坐标为(xx,yy),A点坐标为(xx1,yy1...
居然不知道Dijkstra是个什么玩意儿了,悲催
struct point
double d[505][505];
double distance(int x1, int y1, int x2, int y2)
return sqrt(1.0 * (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2...
【题目描述】
给出一系列的1*h的矩形,求矩形的最大面积。
可转化为求找一个子序列。 使得这个序列的长度乘以序列最小数最大。
分析:这是一个单调栈的问题,维护栈单调不减。 单调栈 主要是大家要自己枚举,需要找到每个元素 最左能扩展到那 ,最右能扩展到那,当然最小的是你枚举的那个元素。
} wo[100005];
【Description】
Set S is defined as follows:
(1) 1 is in S;
(2) If x is in S, then 2x + 1 and 3x + 1 are also in S;
(3) No other element belongs to S.
Find the N-th element of set S, if we so...
【题目描述】 
给出一个长度小于或等于1000的序列,求出两个子序列,让其和最大,输出最大和。比如例子的
1 -1 2 2 3 -3 4 -4 5 -5
结果就是 {2,2,3,-3,4} and {5},也就是要输出最大和13
【解题思路】
在输入的同时,进行一次动态规划,计算出从左到右的最大值,并把它保存在数组dp的对应的下标元素中,这样之后,对于下标为i的元素, 它其中保存的便是前...
【问题描述】有n个点,问这n个点每两个点连接,不能有点在连接的直线上方,这种点对有多少。
【解题思路】求每个点与它之前的点是否能成一对,从此结点往前扫描,遇到一个点, 如果比维护的高度高,那么这个点就和原来的点组成一对,并把维护的高度记成这个点 
否则跳过此点,扫描更前面的点。
} wo[2005];
bool cmp(my...
参考了别人记录结果路径的方法,其余为自己所想
double a[30];
double d[30][30];
double ans[10005][30];
int path[10005][30];
char s[10000];
void process(char c)
switch (c) {
case '2':
【题目描述】求C(n, m) % k 是否等于0,如果等于0,输出“Yes”,否则输出“No”。
【题目分析】首先找出k中各个素数约数的个数,这里用简易素数的筛法:
for (i = 2; i * i &= ++i) {
if (c % i == 0) {
wo[index].x =
wo[index].num1 = wo[index].num2 = 0;...
从1开始,每次可以乘以2-9,看谁先得到n
找规律,找到先手的必胜态和必败态。
/*==========================================================*\
| 19-162 (A必胜)
| 163-324 (B必胜)
| 规律:N循环除以18,余数是[1,9]A必胜,[10,18]B必胜...
其实很简单的思想,外加贴一个模版
【题目描述】给一个数N 然后给M个一位数 问你是否有N的倍数 完全由这些一位数组成
先说算法 用BFS不停的扩展 就是X10这样的扩展 然后如果对N取余的余数没有出现过就把这个扩展得数的余数添加到队列里 如果余数是0的话就可以输出了 
当然 扩展的时候要考虑到0,这些都不是最关键的 最关键的是这个数可能非常大 long long 不够 而高精的话比较麻烦...
/*==========================================================*\
| 【google面试题】给定一个正整数N,写下从1开始,到N的所有整数,
| 然后数一下其中出现的所有“1”的个数。
| (1)写一个函数f(N);
| (2)满足条件“f(N) = N”的最大的N是多少?
| 【解答】
| (1)只分析当前位是0,1或者[2,9]三种情...
q.push(1);
while (!q.empty()) {
int index = q.front();
visit[index] = 1;
for (i = 1; i &= ++i) {
if (visit[i])
if (!is_exist(in...
/*==========================================================*\
| n=a*b*c;求满足条件的a*b+b*c+a*c的最小值
\*==========================================================*/
int main()
while (cin&&n) {...
hash版本,ans/2是因为如(0,0),(0,3),(3,0),(3,3)
(0,0)(0,3)和(0,3)(3,3)都满足,但只有一个正方形:
#define N 2001
#define SUM 40005
int next[N], hash[SUM];
struct point
bool cmp(point a, point b...
优先队列,只能访问第一个,不能访问最后一个;
set既可以访问第一个,也可以访问最后一个;
bool operator & (my a, my b)
return a.p &n, n) {
if (n ==...
有n座城市和m(1,m)条路。现在要从城市1到城市n。有些路是要收费的,从a城市到b城市,如果之前到过c城市,那么只要付P的钱,如果没有去过就付R的钱。求的是最少要花多少钱。
注意:路径是有向的。
struct node
int a, b, c, p,
} edge[15];
int visit[15];
void dfs(int a, i...
char ss[1005][30];
struct trie
trie *p[26];
void make_tree(char *s)
trie * r =
for (i = 0; s[i] != '\0'; ++i) {
if (r-&p[s[i] - 'a'] == NULL)...
/you/blog/item/db0ba.html
int c[26 + 5][26 + 5];
void yanghui_triangle()
for (i = 0; i &= 26; ++i) {
for (j = 0; j &= ++j) {
题意:给你一个数s,让你求出最小的n使得在1…n之间加入加减号能是其和等于s
思路:减去一个数k的时候就相当于总和减小了2*k,也就是减小了一个偶数。当总和和s之差为偶数有解...
a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 转换为-(a1x13+ a2x23) =  a3x33+ a4x43+ a5x53
直接数组模拟,数组开short
short hash[50 * 50 * 50 * 50 * 4 + 1];
int main()
int a, b, c, d,
int i, j, k, l,
while (sc...
【题目描述】:在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。
【解题思路】
题意:给一个由1-n的整数组成的数列。对其进行交换两个数的操作。请问最少需要多少次操作,使得数列变成升序的1-n
举个例子来说,2 5 4 3 1。我们让 i 从1开始判断是否在i是否在该在的位置上。此时i=1不在位置1上,而且位置1上是2。2应该放在位置2上,而位置2上是5。位置5上是1。这就说明1,2,5三个数轮换一下,就能将这三个数换到各自应该在的位置。需要换2次。
顺着这个思...
问题描述:输入一个整数n(1,10^7),要你输出该整数的阶乘后的位数是多少?
问题分析:由于n的输入数可能较大,倘若按照常规算法(就是算出n的阶乘)设计的话,一方面会出现TLE,另一方面会出现数据溢出的情况。所以我们不得不充分利用数学知识里面的对数与指数间的亲密关系。
推导以下公式:n!=n*(n-1)*(n-2)*…..*1
 n的位数=[lg(n)]+1;
所以:n!的位数=[lg(...
(x - z) * (y - z) = z * z
| 即求z * z的小于等于z的因子个数
故原题 转化为求n*n的不大于n的因数个数。假如 n%p^c==0 && n%p^(c+1)!=0
p是质数,则n^2中,关于选择p的个数构成因数的情况有2*c+1种,
依次可求出n^2的因数个数,又要求因数
ans为n^2的因数个数。n=1需要加一特判。
/*==============...
这题的大意就是 给出一个数n, 找到它所有的因子, 然后把这些(因子的因子数)的立方和求出来。
题目的时限虽然很宽,但是数据很BT。首先,公式必须找出来。
证明如下:
先将n质因数分解成形如n = a ^m * b ^ p * c ^q *........;
那么要求的结果为函数g(x)的值;
我们以n有2个质因数为例子;
g(n) = g(a ^m  *  b...
int main()
char s[10000];
int x = 1;
while (cin&&s && s[0] != '-') {
int i, l = strlen(s);
int ans = 0;
int left = 0, right = 0;
for (i = 0; i & ++i) {
if (s[i] == '{') {...
方法一:转换为LCS
O(n^2)对原数组排序去重,用一次LCS,要用到滚动数组。
方法二:动态规划法
设f(i)表示L中以ai为末元素的最长递增子序列的长度。则有如下的递推方程:
这个递推方程的意思是,在求以ai为末元素的最长递增子序列时,找到所有序号在L前面且小于ai的元素aj,即jaji。如果这样的元素存在,那么对所有aj,都有一个以aj为末元素的最长递增子序列的长度f(j),把其中...
求一个数能用1, 2, 4, 8, 16......相加表示有多少种方法
如果n是奇数的话肯定有一个1,所以可以拿掉
如果是偶数的话,要么有两个1,或者全是偶数,前者就拿掉两个1,后者就全部除2。
比如4,4=1+1+2;2又有2种分法。这种情况下2又有两种情况。全部都是偶数的情况下4可以分为4与2+2,即为f(4/2)=f(2);
int d[1000005];
int main()...
n条线段,求多少个交点。
先对右边的点由大到小排序(左边大的点对在前面),然后对左边的求逆序数就可以了。
逆序数可以借助状态数组求得。...
3090是法雷级数的变形,结果是(法雷级数*2 - 1);2478是(法雷级数-2)
法雷级数定义
  R.亨斯贝尔格著李忠翻译的《数学中的智巧》一书,介绍了法雷级数。这里每一行从0/1开始,以1/1结尾,其它数自左至右将所有的真分数按增加顺序排列;第n行是由所有分母小于或等于n的真分数组成,我们称为n阶法雷级数。如下表:
  F1: 0/1 1/1
  F2: 0/1 1/2...
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence
1, 2, 3, 4, 5, 6, 8, 9, 10, 12, ...
typedef pair node_
int main()
ll result[1500];
priority_queue, greate...
代码就不贴了,如导论上410页增加一个源点和一个汇点,源点和汇点到其他点得权值都设为1...
  层次图,就是把原图中的点按照到到源的距离分“层”,只保留不同层之间的边的图。
  1、根据残量网络计算层次图(BFS)。
  2、在层次图中使用DFS进行增广直到不存在增广路。
  3、重复以上步骤直到无法增广。
const int INF = 0x7
const int V = 205;
int cap[V ][V ];
给出入栈顺序1,2,3,4,……n,问某个出栈序列是否合法
int main()
while (scanf(&%d&, &n) == 1 && n) {
int d[10000];
while (scanf(&%d&, &x) == 1 && x) {
for (i = 1;...
黑书上的例题,具体模型是求一个无向图的最小生成树,其中有一个点的度有限制(假设为 k)。
要求最小 k 度生成树,我们可以按照下面的步骤来做:
设有度限制的点为 V0 ,V0称为根节点
1,把所有与 V0 相连的边删去,图会分成多个子图(假设为 m 个,显然的,如果 m & k,那么问题无解),让他们分别求最小生成树;然后用最小的代价将 m 个最小生成树和 V0 连起来,那我们就得到了...
转自/techblog/archives/1350
昨天下午stepbystep的为其他同学演示了内核模块编程hello,kernel!在陈老师的指导下,先为大家演示了最基本的C程序hello,world。然后又一步步的转换成内核模块程序。在这一步步的转变过程中,我也发现了自己在学习内核模块中的不足,下面将下午遇到的一些问题总结如下。
一个简单的hello...
转自/techblog/archives/1336
学习内核模块编程,第一个小程序当然是hello,kernel!了,这应当算是一个惯例了。
1.首先编写hello.c文件
//必选,模块许可声明
MODULE_LICENSE(&Dual BSD/GPL&);
//模块加载函数
static i...
【题目描述】有n个数字排成一列,有m个询问,格式为:left right k
 即问在区间[left,right]第k大的数据为多少?建图:
建树的过程比较简单,对于区间[l,r],首先通过对原数组的排序找到这个区间的中位数a[mid],小于a[mid]的数划入它的左子树[l,mid-1],大于它的划入右子树[mid,r]。
同时,对于第i个数a[i],记录在[l,i]区间内有多少数被划入左...
问题提出:已知数组a[],元素个数为n,现在更改a中的元素,要求得新的a数组中i到j区间内的和(1
思考:对于这个问题,我们可以暴力地来解决,从a[i]一直累加到a[j],最坏的情况下复杂度为O(n),对于m次change&querry,合起来的复杂度为O(m*n),在n或m很大的情况下,这样的复杂度是让人无法忍受的.另外,如果没有元素的变更,我们完全可以存储sum[1,k](k=1,2,……)...
/*==========================================================*\
| 最短非子序列长度
| 题目描述:n个数字串,串中每个元素均是1……k之间的任意常数,
| 求最小的s,使得长度为s的由数字1到k组成的某一个串不能在该主串的子串中找到
| 如:n=14,k=5中,主串为:{1 5 3 2 5 1 3 4 4 2 5 1 2 3}...
1    如何求出n阶乘中质因数x(比如说5)出现的次数?
int get(int m, int n)//计算n!中质因子m的出现次数
if (n == 0) return 0;
return (n / m) + get(m, n / m);
 2    如何求出n!阶乘最后非0位?
比如说我们要找10!最后非0位,由于质因数2和5组合之后会使得末尾产生0.那么我们不妨把...
/******************************************************************************************************
** Copyright (C) -
** Author: famousDT
** Edit date:
因为知道小写字母代表叶子,大写字母代表非叶子,如后序为bcA,那么中序久违bAc,这样就可以用逆波兰表示法的二叉树做,把小写字母当成操作数,大写字母当成操作符,每有一个操作符就做一个操作。
/******************************************************************************************************...
/******************************************************************************************************
** Copyright (C) -
** Author: famousDT
** Edit date:
x = bp,给定整数x,求最大的p使得b是个整数
pow(64, 1.0 / 3)可能返回3.99……,如果转换成int,就变成3了,所以,假设结果是ans,
必须对ans和ans+1分别测试。
int main()
while (scanf(&%lf&, &n) == 1 && n) {
int fla...
#define MOD 10000
int main()
//freopen(&Fibonacci.in&, &r&, stdin);
//freopen(&Fibonacci.out&, &w&, stdout);
ll t[10000];
while (scanf(&%d&, &n) == 1 && n...
0-1背包问题
1.最优子结构性质(用剪贴思想证明)
y1,y2,… yn如果是一个最优解,因若不然,z2,z3,…zn是上述子问题的最优解,从而y1,z2,z3,…zn是0-1背包问题的最优解,这与y1,y2,… yn是最优解矛盾
2.递归关系
m(i,j)=max{m[i+1][j],m(i+1,j-wi)+vi} j&=wi
m[i][j]=m[i+1][j] 0
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)...
ll s[] = {5, 10, 20, 50, 100, 200, 500, , };
int main()
ll d[5005] = {0};
for (i = 0; i &= 10; ++i) {
for (j = 0; s[i] + j &= 5000; ++j)
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html...
【1】取消建行手机银行:发送FWZZ到
【2】TopCoder比赛时间北京和纽约的时差 :夏令时4月-10月时差是12小时,冬令时11月-3月是13小时
【3】在Fedora下使用yum轻松安装wireshark。
          yum install wireshark
          yum install wireshark-gnome
【4】如...
问题描述:
如果一个自然数比所有比它小的自然数的约数个数都要多,那么我们就称这个数为一个反素数。例如,1、2、4、6、12和24都是反素数。
请写一个程序:
l        在文本文件ant.in中读入一个自然数n;
l        找出不大于n的最大的反素数;
l        将结果输出到文本文件ant.out中。
输入格式:
在文件ant.in中应该只包...
问题描述:
JOHN正准备安排一次钓鱼活动,已知其钓鱼的可用时间为h小时(1≤h≤16),且某区域中共有N(2≤N≤25)个可供钓鱼的湖泊,它们编号为L1,L2,……,Ln,所有的湖泊沿着唯一的单向道路都可以到达。
JOHN每次仅能从一个湖泊到达其相邻的一个湖泊,而且在一个湖泊中可以不作任何停顿,我们以5分钟作为一个基本的时间单位,对于任意的I=1,2,……,n-1,定义Ti为JO...
染色问题 
问题描述:
有一段从0到的数轴,它开始的颜色是白色。现在有人不断把其中的一段染成黑色或白色,总共染了N段(1
输入:第一行只有一个数N,接下来的N行是每次染一段的信息,格式为:ai bi ci。
ai、bi是整数,ci是符号’b’或’w’,三者用空格隔开,表示这次从ai染到bi,用的颜色为ci(’w’表示白色,’b’表示黑色),你可以认为0
输出:仅两个数...
恺撒的规划
亚特兰蒂斯是一块富饶美丽的土地。恺撒大帝率领他的大军,经过了一整年的浴血奋战,
终于将它纳入了罗马帝国的版图。然而,长期的战火彻底抹去了这里的繁华,昔日的富庶之地如今一片荒芜。恺撒大帝作为一位有着雄才大略的君主,决心在战争的废墟上建起一座更为宏伟的城市。所以,在建城之前,他需要对整个城市进行规划。
  亚特兰蒂斯是一块矩形平原,恺撒准备在上面修建一些建筑。为了规划方便,他将矩形划...
教授的测试
转眼之间,新学期已经过去几个月了,F大学计算机系的W教授决定对他的学生进行一次测试。为了测试学生对树结构的认识,同时也检验他们的编程能力,教授把测试的内容定为:要求学生们编程按编号顺序打印出节点个数不少于m的所有二叉树。
  二叉树编号规则如下:
  仅有一个元素的树编号为1。
  当满足以下条件之一时,定义二叉树a的编号比b大:
    1. a的节点数比b多。...
一元三次方程求解
【问题描述】:有形如:ax3+bx2+cx+d=0  这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d  均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值&=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。
提示:记方程f(x)=0,若存在2个数x1和x2,且x1
【问题描述】: 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 (正整数)。要求从m个物品中,任取若千个装入箱内,使箱子的剩余空间为最小。
【输入】:(boxes.in)
24      一个整数,表示箱子容量
6        一个整数,表示有n个物品
8        接下来n行,分别表示这n个物品的各自体积...
【题目描述】
    在某个遥远的国家里,有n个城市。编号为1,2,3,……,n。
    这个国家的政府修建了m条双向的公路。每条公路连接着两个城市。沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油。
    开车每经过一个城市,都会被收取一定的费用(包括起点和终点城市)。所有的收费站都在城市中,在城市间的公路上没有任何的收费站。
    小红现在要开车从城市u到城...
【问题描述】
有n个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸。每个炸弹还有个得分,当这个炸弹被引爆后就能得到相应得分。
现在要你引爆k个炸弹,使得分最大。
第1行两个整数n、k。
接下来n行每行两个整数a[i]、b[i]。a[i]表示这个炸弹用引线连接的下一个炸弹,如果a[i]为...
【问题描述】
我们按以下方式产生序列:
1、开始时序列是:&1& ;
2、每一次变化把序列中的&1&变成&10&,&0& 变成 &1&。
经过无限次变化,我们得到序列&0101101...&。
总共有Q个询问,每次询问为:在区间A和B之间有多少个1。
任务:写一个程序回答Q个询问。 
第一行为一个整数Q,后面有Q行,每行两个数用空格隔开的...
【问题描述】
你一个人保龄球馆去打保龄球。总共有k个球可用。每个球的宽度为w。在你前方有n个球棒要打。这n球棒紧密的排成一行,且第i个球棒宽度为1,价值为xi。你的每个球恰能击中第a个~第a+w-1个的球棒(如果此球棒存在的话)。球棒被打到就倒了,且互不影响。你可以向任意方向击球,甚至球的一部分可以越过最左、最右边球棒所构成的边界。求最大价值。
文件第一行是三个整数...
【问题描述】
话说前年Alice和Bob相聚在一起玩游戏后,彼此都很忙,因此很少见面。今年由于为了NOIP2011又再次相聚,他们俩还是想比比谁能够收集到最多的石子数量。Alice将石子分成了N堆(编号1..N),并且规定了它们的选取顺序,刚好形成一颗有向树。在游戏过程中,两人从根节点开始,轮流取走石子,当一个人取走节点i的石子后,另一个人只能从节点i的儿子节点中选取一个。当取到某个叶...
奇怪的贸易
【问题描述】
刚结束了CS战斗的小D又进入了EVE的游戏世界,在游戏中小D是一名商人,每天要做的事情就是在这里买东西,再运到那里去卖。这次小D来到了陌生的X星,X星上有n种货物,小D决定每种都买走一些,他用ai来表示第i种货物购买的数量,X星人对物品的单价有特别的决定方式。他们首先会选择一个基本价x,第一种物品单价为x,第二种物品单价为x^2,第三种物品单价为x^3……第i种物品单...
一、骑士精神(Knight)
     在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。
        给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:
                         
为了体现出骑...
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C)
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C) (8:000)...
/******************************************************************************************************
** Copyright (C) (8:000)-
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C) (8:000)...
/******************************************************************************************************
** Copyright (C) -2013.0...
/******************************************************************************************************
** Copyright (C) -2013.0...
/******************************************************************************************************
** Copyright (C) -2013.0...
/******************************************************************************************************
** Copyright (C) -2013....
/******************************************************************************************************
** Copyright (C) -
** Author: famousDT
** Edit date:
/******************************************************************************************************
** Copyright (C) -2013.0...
#define N 10
int main()
int **d = (int **)malloc(N * sizeof(int));
if (d == NULL) return 0;
int index = 1;
访问:113757次
积分:3059
积分:3059
排名:第4368名
原创:200篇
转载:11篇
评论:13条
(1)(1)(7)(6)(7)(30)(43)(54)(11)(14)(2)(34)(1)

我要回帖

更多关于 你好玉米91关攻略 的文章

 

随机推荐