昨天笔试,见到一个题
一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?
写代码模拟的结果如下
#include <iostream>
#include <stack>
#include <queue>
#include <set>
using namespace std;
set<queue<int>> total;
void print(queue<int> q)
{
total.i…… 阅读全文
Tag Archives: C
蛇形填数
之前因为家里的原因,回乡下一个星期,期间都没有机会,也没有心情写代码,一个星期就这么毫无长进,罪过。
看到一个蛇形填数的题目,搞了搞,代码如下
#include <stdio.h>
#include <stdlib.h>
void print(int **a, int n)
{
for (int y=0; y<n; y++)
{
for (int x=0; x<n; x++)
{
printf…… 阅读全文
生成可重集的排列
刘汝佳在算法竞赛入门经典,http://book.douban.com/subject…,的 118 页提到生成一个可重集的全排列问题,跟上次的 生成一个字符串的全排列 很相像,但是写法却巧妙很多
#include <stdio.h>
void quick_sort(int a[], int left, int right)
{
int i=left, j=right;
int povit = a[(i+j)/2];
while (i …… 阅读全文
简单枚举的除法
今天看到一个简单枚举的题目
除法
输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2 阅读全文
输出一个字符串的组合
跟上次输出一个字符串的排列类似,http://zrj.me/archives/472,要求输出一个字符串的组合,思路也是递归
#include <stdio.h>
#include <string.h>
void combine(char str[], int str_index, char res_total, char result[], int res_index)
{
if (res_total == res_index)
{
for (int i=0; i<res_…… 阅读全文
1亿以内的回文质数
今天下午看到这么一个题
找出 1 亿以内的回文质数
很自然的思路就是素数筛,然后验证回文性质
#include <iostream>
#include <cmath>
#include <ctime>
#define TOTAL 100000000
using namespace std;
bool is_prime[TOTAL];
void Sieve_of_Eratosthenes()
{
memset(is_prime, 1, sizeof(is_pri…… 阅读全文
Faulty Odometer
今天上午看了一下榜,http://acmicpc.info/icpc2012/t…,发现大家 a 题刷刷的过,于是自己也敲了一下,好久没有敲题,居然一次过了 sample,呵呵,不过后来跟同学讨论的时候,发现我那个暴力模拟的思路实在太弱智了,在同学的指点下改成了进制转换的思路,没有账号,所以没有的交,不过 sample 是过了
题目,附上 …… 阅读全文
链表的反转
今天上午自己写了一个链表的反转
#include <stdio.h>
#include <stdlib.h>
typedef struct _node
{
int n;
_node *next;
} node;
int create_link(node **phead)
{
int x = 0;
printf("input nums, press Ctrl+Z(win) or Ctrl+D(linux) to endn");
if (scanf("%d", &x) <…… 阅读全文
输出一个字符串的全排列
今天看到 http://blog.csdn.net/morewindo… 这里提出了一个问题
用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,
如 abc 的全排列: abc, acb, bca, dac, cab, cba
想了想(想了好久啊,好久没有碰数据结构和算法了),觉得可以 dfs,这样来搞:
#include <stdio.h>
#include <stdlib.h…… 阅读全文
Linux C 多线程初步
晚上想起来要敲一个 C 的多线程,于是搜了一下,找到这篇,http://zhuwenlong.blog.51cto.c…
#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
…… 阅读全文