简单题,但是我耗了好大劲。。。一个是题意没弄懂,一个是细节上过不去,这要是正式比赛有贡献好几次wa了,这也是最近比赛暴露的问。。。

说下题意,第一,位置序号是从最后一个开始依次递增,第二,每次是在抹刀上边的才顺序颠倒(和后边的序号没关系。。),第三,输出时要先输出原序列。

明确了这些就没什么了。我是先用另一数组记录排序好的顺序,然后从后向前和原数组比较,相同位置上的数也相同就跳过,否则,在从此位置向前找出该在此的数,若此数不再位置n(数组中的0位置),则先放到位置n,再倒到应放的位置。

以下是代码

#include"stdio.h"
#include"string.h"[......]

继续阅读

http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=1163

20进制的数求和,本来挺简单的题目,可惜wa了好多次才找出问题。不单要处理前导0,还要处理0+0=0的情况。考虑欠缺。

代码如下

#include”stdio.h”
#include”string.h”
int main()
{
char a[101],b[101],c[101],t;
int x[101];
int f,i,k,o,j,flag=0,p,sum=0,aa,g,bb;

while(scanf(“%s”,a)!=EOF&&am[……]

继续阅读

题目链接:http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=1174

题目很简单,依然是前缀字符串的题,用普通循环排序超时了,后来改成快速排序就ok了,另外由于将两个字符串相同的情况也考虑了导致WA了几次,我晕,考虑不够仔细啊!

我的思路:先将字符串按从小到大排序,然后依次判断前一个字符串是否是下一个的子串,若是就break,输出NO……

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
cha[……]

继续阅读

http://acm.sdibt.edu.cn:8080/judge/contest/view.action?cid=397#problem/I
这道题要求我们做一个字符或字符串的替换,但要注意如果对于所给的一组替换要将所有对应的替换掉再换下一组,这个问题我们可以完全使用字符串函数来解决
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct{
    char a[100];
    char a1[100];
}c[100];
int main(){
    int[......]

继续阅读

http://www.bnuoj.com/bnuoj/contest_show.php?cid=613#problem/7494

一开始我都没有读懂题意,在理解题意上花费了很多时间,最终理解是A的所有质因子都是B的质因子,B的质因子不一定是A的

#include “stdio.h”
#include “string.h”
#include “math.h”
#define num 2000000
int x[num],prime[5000000];
void allprime()   //打印素数表
{
int cnt=0,i,j;
memset(x,0,sizeo[……]

继续阅读

题目链接:http://acm.sdibt.edu.cn:8080/judge/contest/view.action?cid=397#problem/H

题意很明确,就是利用字典树查找,字典树看的半懂,自己模拟了一下,不对的地方可能比较多,希望指点。

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node//定义相应结构体
{
char number;
struct node *left,*right;
}nod;[……]

继续阅读

link:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26110

题意很明确,给你一个n*n的矩阵,代表每个人之间的所爱关系,问是否未出现“三角恋”。。

其实说的直白点就是构建图之后检查是否出现环~~~与hdu 1285大同小异,一个是求是否出现环

一个是上输出每个人的关系表。。其实可以用一个模板完成,用拓扑排序检查是否存在环、、

code:

#include <stdio.h>
#include <string.h>
#define N 2005
char map[N][N];[……]

继续阅读

link:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26106

题意大概是一个A进制的有限小数转化为B进制之后是否还为有限小数?

对这题一开始都不知道怎么下手。。。因为不太懂小数之间的转换是怎样的

百度了一下小数的进制转换才得到一些启发、、还有对这个推规律什么的,最好

写下来看,这样比较明显。。。

下面是我想的过程,首先将A进制转变成10进制的话,有:a1/A+a2/A^2+a3/A^3…一直到

最后、、要将一个10进制小数转变成B进制的话,不断对其乘以B并取整数部分。。

既然要求最好得到的小数[……]

继续阅读

link:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26109

无语了~~~比赛做了差不多了,看到没什么做了,就扔在一边在那儿开始玩了、、、、

后来sjw问我d怎么样,我就看了一下,发现做的人也蛮多的了,就读了一下题。。。。

发现这是纯字符串编辑距离的模板题哇。。。。

正好以前收集过这个的模板,就套了一下,唉。。无语的时间来不及了。。。。

交的时候已经刚刚结束,手速嫌慢啊。。。接受这次教训!!!

下面是我的代码,可以当做编辑距离的模板,题意就是问字符串之间的编辑距离小于一个数的有多少。。

把模板改一[……]

继续阅读

Description

请考虑一个由1到N(N=3, 4, 5 … 9)的数字组成的递增数列:1 2 3 … N。 现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白,来将每一对数字组合在一起(请不在第一个数字前插入符号)。 计算该表达式的结果并注意你是否得到了和为零。 请你写一个程序找出所有产生和为零的长度为N的数列。

Input

单独的一行表示整数N (3 <= N <= 9)。

Output

按照ASCII码的顺序,输出所有在每对数字间插入“+”, “-”, 或 “ ”后能得到和为零的数列。(注意:就算两个数字之间没有插入符号也应该保留空[……]

继续阅读

http://poj.org/problem?id=1753

搜索什么的一直都没入门。。。于是找来经典题目练习,于是果断不会,于是经过看题解什么的用了大半天的时间总算对这道题搞明白一些。当然对dfs的思想也有进一步的理解。

题意很好懂,目的即是要看在多少步可将棋子翻转成全一色。第一个要解决的问题:如何判断结束条件。这个地方想了很久,大概能想的差不多了http://www.189works.com/article-58021-1.html,这个地方的解释比较全面,我也就不掺和了(当我没想明白,这里用抽屉原理怎么想?)。解决了第一个问题,基本能下手写一些了。剩下的问题在注释里表明。贴代[……]

继续阅读

link:http://acm.hdu.edu.cn/showproblem.php?pid=2222
今天看了一下kmp匹配的时候,正好又一次遇到了这个东东,就顺便看了一下这个,发现真心有难度啊,
不是很理解~~~要搞懂ac自动机的话,先得有trie和kmp模式匹配算法的基础,表示这两项到现在
都不具备。。不过搜了一个模板,算是研究了一下午了,敲了好几遍,还出了好多错误,
后来百度一道纯ac自动机的水题,发现好像那模板就是这题的代码、、、
好囧~~~算是半看半默的敲了一遍把,留着当模板~~下面是我的代码
code:

/*
Ac自动机模板:
insert();建树
buil[……]

继续阅读