======hihoCoder======
yphacker
心之所动,且就随缘去吧
展开
-
hihoCoder 1050 树中的最长路
#include #include #include #include #include using namespace std; vector v[100005]; int n; int vis[100005]; int dis[100005]; int dfs(int x,int d){ vis[x] = 1; dis[x] = d; for(int i原创 2015-08-01 16:05:13 · 617 阅读 · 0 评论 -
[Offer收割]编程练习赛7
图片排版 题目链接: http://hihocoder.com/problemset/problem/1365 解题思路: 比较容易想到是O(n^2)的解决方案,遍历n种删除可能,每次遍历O(n)时间求总高度。 前者优化比较困难,因而想办法优化每次遍历求高度的时间。 由前往后遍历,当删除第i个图片时,先前的图片排版是连续的,从而通过计数器等累加方法可以求得已完整行的总高度preSum,原创 2016-08-31 15:59:19 · 1045 阅读 · 0 评论 -
[Offer收割]编程练习赛4
满减优惠 题目链接: http://hihocoder.com/problemset/problem/1353 解题思路: 题目大意: 从数组中选出若干个数,使得这些数的和大于X,并且尽可能的小。 算法思想: 规模很小的背包问题。因此O(2^N)的枚举或者DP都可以解决。 AC代码(枚举): #include #define INF 0x3f3f3f3f using原创 2016-08-31 15:13:18 · 605 阅读 · 0 评论 -
hihoCoder 1303 模线性方程组
模线性方程组 描述: 给定了n组除数m[i]和余数r[i],通过这n组(m[i],r[i])求解一个x,使得x mod m[i] = r[i]。 算法思想: 一开始就直接求解多个方程不是太容易,我们从n=2开始递推: 已知: x mod m[1] = r[1] x mod m[2] = r[2] 根据这两个式子,我们存在两个整数k[1],k[2]: x = m[原创 2016-05-31 21:01:02 · 562 阅读 · 0 评论 -
hihoCoder 1121 二分图一•二分图判定
#include #include #include #include #include using namespace std; int n,m; vector v[10005]; int vis[10005]; bool bfs(){ int flag = 0; memset(vis,-1,sizeof(vis)); queue q; for(in原创 2015-08-04 08:45:39 · 910 阅读 · 0 评论 -
hihoCoder 1062 最近公共祖先·一
#include #include #include #include #include using namespace std; int main() { int N,M,id=0; scanf("%d",&N); vector fa,son,names; map m; for(int i = 0; i < N; i++) { string str1,str2;//st原创 2015-08-02 10:56:28 · 414 阅读 · 0 评论 -
hihoCoder 1298 欧拉函数
欧拉函数 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥。小Hi和小Ho约定了一个区间[L,R],每次小Hi和小Ho会选择其中的一个数作为密钥。 小Hi:小Ho,这次我们选[L,R]中的一个数K。 小Ho:恩,小Hi,这个K是多少啊? 小Hi:这个K嘛,不如这一次小Ho你自己想办法算一算怎么样?我这次选择的K满足这样一个条件原创 2016-05-23 00:06:16 · 386 阅读 · 0 评论 -
hihoCoder 1082 然而沼跃鱼早就看穿了一切
水题,但是凡是字符串处理的题,都要非常小心,因为一不小心,就会出错,我也wrong了很多次。。。 #include #include #include #include using namespace std; int main() { string s,sa; string a="marshtomp"; while(getline(cin,s)) {原创 2015-08-03 15:00:39 · 471 阅读 · 0 评论 -
hihoCoder 1080 更为复杂的买卖房屋姿势(区间更新)
#include #include using namespace std; const int N = 100005; struct node{ int l,r,sum; int add,setv; }tree[N<<2]; int a[N]; int ans; void build(int id,int l,int r){ tree[id].l = l;原创 2015-08-02 22:09:37 · 541 阅读 · 0 评论 -
[Offer收割]编程练习赛4
Playfair密码表 题目链接: http://hihocoder.com/problemset/problem/1361 解题思路: 模拟即可。 AC代码: #include using namespace std; const int N = 30; int vis[N]; char output[N]; int main(){ string str; whi原创 2016-08-31 17:07:58 · 314 阅读 · 0 评论