现在位置: 首页 > 算法 > 文章
2018年05月09日 算法 ⁄ 共 444字 评论关闭
  这是一道简单的编码题,把一个字符串中连续重复的字母从左到右写成KX的形式,如果k是1就省略。   解题思路:对于每一个字符串,拿后一个与前一个比较,如果不相等,就输出字符(注意当k不等于1的时候要先输出k),否则将计数器k加1。 注意每一串比较完后,k的值重新赋为1. 代码如下: #include<iostream> #include<string> #include<fstream> using namespace std; main() { // ifstream cin("a.txt");  i...
阅读全文
2018年05月09日 算法 ⁄ 共 1349字 评论关闭
Reverse Text Time Limit: 2 Seconds      Memory Limit: 65536 KB In most languages, text is written from left to right. However, there are other languages where text is read and written from right to left. As a first step towards a program that automatically translates from a left-to-right language into a right-to-left language and back, you are to write a program that changes the direction ...
阅读全文
2018年05月09日 算法 ⁄ 共 31395字 评论关闭
zoj分类 简单题#1001 -____-b  A+B。#1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。(这题脑筋还是要转一个弯的,不然做不出)#1115 a[i+1] = a[i] 的全部数位上的加起来,直到剩下一个,直接模拟。#1414 太弱太弱,按照模 4 分类讨论一下即可。#1713 简单的字符串截取和字符计数。#1716 简单的二维数组区间求和,作累加,然后容斥一下;预处理 O(W*H),查询 O(1) 顶多 (W-w)*(H-h) 次查询。#1745 简单的 hotter cold...
阅读全文
2018年05月02日 算法 ⁄ 共 2219字 评论关闭
题目连接:http://poj.org/problem?id=1141 题目大意:给出一串括号序列(只包含小括号和中括号),求包含次子序列的长度最小的regular brackets sequence。其中regular brackets sequence定义如下: 1.空序列是一个regular brackets sequence; 2.如果s是一个regular brackets sequence,那么[s]也是一个regular brackets sequence,(s)也是一个regular brackets sequence。 3.如果A、B都是regular brackets sequence,...
阅读全文
2018年05月02日 算法 ⁄ 共 2424字 评论关闭
type tree=record l,r,v,fl:int64; end; bian=record x,y1,y2,pd:int64; end; var x,y,xx,yy,num,ans,max:int64; i:longint; t:array[1..1000000] of tree; b:array[1..1000000] of bian; function maxn(a,b:int64):int64; begin if a>b then exit(a) else exit(b); end; procedure sort(l,r: int64); var i,j,x,y: int64; begin i:=l; j:=r; x:=b[(l+r) div 2].x; ...
阅读全文
2018年05月01日 算法 ⁄ 共 1198字 评论关闭
题意:老师给N个学生发糖,第x次发糖发给编号为 f(x) 的学生。可以推知:f(x) = x * (x+1) / 2 % N(学生号为 0, 1, 2, 3, ```N-1 ) 现在问你是否每个学生都能得到至少一颗糖。 题解:要使每个学生都至少得到一颗糖,那么f(x) 应该构成模N的完全剩余系。 那么这个问题的反面就是在什么情况下,f(x) 不能构成模N的完全剩余系。 我们知道若存在 x != y, 使得 f(x) = f(y),那么f(x)边不能构成模N的完全剩余系。 若f(x)  = f(y)...
阅读全文
2018年05月01日 算法 ⁄ 共 1605字 评论关闭
题目大意:N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。2,至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。 具体算法:先用tarjam求出有向图所有的强连通分量,然后将所有的强连通分量缩成一个点(缩点),这样原来...
阅读全文
2018年05月01日 算法 ⁄ 共 1911字 评论关闭
题意:求加入一条边后剩余的桥。 题解:加入的边形成的环里的桥都不存在了。 #pragma comment(linker, "/STACK:10240000000000,10240000000000") #include <iostream> #include <vector> #include <stack> #include <cstdio> #include <cstring> using namespace std; const int maxn=110009; const int M=210005; int low[maxn]; int dfn[maxn]; int n,m; vector<int>p[maxn]; stack<...
阅读全文
2018年05月01日 算法 ⁄ 共 2067字 评论关闭
 题目链接:点击打开链接 【题意】 有N个订单和M个机器,给出第i个订单在第j个机器完成的时间Mij,每台机器同一时刻只能处理一个订单,机器必须完整地完成一个订单后才能接着完成下一个订单。问N个订单完成时间的平均值最少为多少。 【解答】        假设某个机器处理了k个玩具,那么对于这些玩具,有两种时间,一种是真正处理的时间,一种是等待的时间,等待的时间就是之前所有处理的玩具的时间,        假设这k个玩具真...
阅读全文
2018年05月01日 算法 ⁄ 共 2250字 评论关闭
C++语言: poj 2337 并查集+欧拉通路+贪心思维+dfs #include <iostream> #include <cstring> #include <memory> #include <stack> #include <algorithm> #include <cstdio> #include <vector> using namespace std; #define mset(x) (memset(x,0,sizeof(x))) #define MAXN 26 struct node { int v; bool vis; char str[24]; node() { v=0; vis=...
阅读全文