编程
Titanzyh
这个作者很懒,什么都没留下…
展开
-
SDNUoj1011盒子与球
1011.盒子与球Time Limit: 1000 MS Memory Limit: 32768 KBTotal Submission(s): 519 Accepted Submission(s): 103 Description现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。则有多少种放法原创 2017-01-21 18:26:33 · 883 阅读 · 0 评论 -
次小生成树 prim和kruskal
prim: 先用prim求出最小生成树T,在prim的同时,用一个矩阵maxd[u][v] 记录 在T中连结任意两点u,v的唯一的路中权值最大的那条边的权值,这是很容易做到的,因为prim是每次增加一个结点s, 在此需要保存节点和其父节点,采用DP,则最大权值要么是新加入的边,要么是父节点到起始点的采用DP算出来的距离。即: maxd[j][p] = max[p][j] = lowc[p原创 2017-09-03 19:59:40 · 560 阅读 · 0 评论 -
floyd算法求最短路
从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j) = Dis(i,k) + Dis(k,j),这样一来,当我们原创 2017-09-03 20:34:50 · 549 阅读 · 0 评论 -
子集和问题
转载于:http://blog.csdn.net/clove_unique 子集和问题 【问题描述】 子集和问题的一个实例为〈S,t〉。其中,S={ x1, x2,…, xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得子集S1和等于c。 【编程任务】 对于给定的正整数的集合S={ x1, x2,…, xn}和正转载 2017-08-22 15:11:14 · 1290 阅读 · 0 评论 -
codeVS 1011 数的计算
题目链接:http://codevs.cn/problem/1011/一个简单的递推。#include<bits/stdc++.h>using namespace std;int a[10500],n;int main(){ for(int i=1;i<=1000;i++) { a[i]=1; for(int j=1;j<=i/2;j++)原创 2017-08-22 15:15:19 · 391 阅读 · 0 评论 -
HDU 6130 Kolakoski
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6130 求序列的第n个元素。 解释: https://baike.baidu.com/item/Kolakoski%E5%BA%8F%E5%88%97/16683856?fr=aladdin 其实就是: 1 2 3 4 5 6 7 8 9 1 2 2 1 1原创 2017-08-15 19:30:22 · 636 阅读 · 0 评论 -
HDU 6168 Numbers 优先队列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6168 题意:有一个长度为n的序列a1……an,根据a序列生成了一个b序列,b[i] = a[i]+aj,然后有一个人把a,b序列按随机顺序混合了起来,现在问你初始的a序列是什么 ?思路:用已确定的a[]数组来确定b[]数组的元素,从已知序列中删掉,再确定新的a[]数组元素,重复步骤。 模拟一下(假定原创 2017-08-23 10:40:55 · 336 阅读 · 0 评论 -
简单拓扑排序
找到入度为0的顶点,入队,删除它和它的出度,重复操作;如果我删除的顶点数小于我输入的顶点数,则有向图中有回路,排序失败。##include<cstdio>#include<vector>#include<queue>using namespace std;vector<int>a[100];int indegree[100];queue<int>q;int n,m;void addc原创 2017-09-05 18:48:52 · 361 阅读 · 0 评论 -
Prim算法求最小生成树
cost[i][j]存i和j之间的距离,vis[i]记录i点是否被访问,lowc[j]存所有与j点连接的边的最小的权值。 每次找最小的lowc[j]。 然后。。。最小生成树 #include <iostream>#include <cstring>#include <queue>using namespace std;const int INF=0x3f3f3f3f;const in原创 2017-08-29 19:54:48 · 581 阅读 · 0 评论 -
Kruskal算法
Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。(并查集)。换而言之,Kruskal算法就是基于并查集的贪心算法。#include<iostream>#include<cstdio>#include<cstring>#include<algorit原创 2017-09-03 19:50:04 · 718 阅读 · 0 评论 -
LeetCode 7. Reverse Integer
Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321Note: The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed int原创 2017-08-14 19:27:58 · 263 阅读 · 0 评论 -
LeetCode 1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same ele原创 2017-08-14 19:22:59 · 239 阅读 · 0 评论 -
acm 练习
sdnuacm 1108poj 2575DescriptionA sequence ofn > 0 integers is called ahappy luguan if the absolute values of the difference between successive elements take on all the values 1 throughn-原创 2017-01-17 21:07:42 · 378 阅读 · 0 评论 -
HDU 6127 Hard challenge
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6127官方题意:平面直角坐标系上有n个整点,第i个点有一个点权vali,坐标为(xi,yi ),其中不存在任意两点连成的直线经过原点。这些整点两两之间连有一条线段,线段的权值为其两端点的权值之积。你需要作一条过原点而不过任意一个给定整点的直线,使得和这条直线相交的线段的权值和最大。官方题解:对于一原创 2017-08-16 15:30:08 · 370 阅读 · 0 评论 -
HDU 6129 Just do it
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6129题意:给你一个包含n个数的序列A和一个数m,序列B中的数是序列A经过异或得到的,比如:b[i]=a[1]^a[2]^…..^a[i]。现在让你求经过m次异或后,序列B的值。题解:结果: 表格中的数字是不是很眼熟,这就是一个变了形状的杨辉三角(且每一项的系数都是杨辉三角,但我们只看第一项的系数影原创 2017-08-17 15:08:17 · 296 阅读 · 0 评论 -
HDU 6140 Hybrid Crystals
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6140题意:有n个数,每个数都对应一个下标。这n个数的原型是a_i,当对应下标是N时,这个数可正可负;当下标是L时,这个数是正数;D时是负数。 问是否可以从这n个数中选择任意个数,使其和恰好等于k。题解:更新上界和下界,判断k是否在其中间。#include <bits/stdc++.h>using n原创 2017-08-18 15:20:42 · 281 阅读 · 0 评论 -
HDU 6143 Killer Names
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意: m 种颜色需要为两段长度为 n 的格子染色,且这两段之间不能出现相同的颜色,问总共有多少种情况。 思路: 截图于:http://blog.csdn.net/qq_28954601/article/details/77337256 大佬的思路非常清晰。 我也不用原创 2017-08-18 19:48:23 · 239 阅读 · 0 评论 -
收藏(持续更新中)
浏览大佬的博客,感觉有很多有用的东西,先记下来: C++ STL 总结: http://www.cnblogs.com/biyeymyhjob/archive/2012/07/22/2603525.html(倾向于文字描述定义、作用) http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html(倾向于代码实现) (以上20原创 2017-08-19 10:50:21 · 562 阅读 · 0 评论 -
C++基础-string截取、替换、查找子串函数
截取子串s.substr(pos, n) 截取s中从pos开始(包括0)的n个字符的子串,并返回s.substr(pos) 截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回替换子串s.replace(pos, n, s1) 用s1替换s中从pos开始(包括0)的n个字符的子串查找子串s.find(s1) 查找s中第一次出现s1的位置,并返回原创 2017-08-14 10:09:12 · 400 阅读 · 0 评论 -
leetcode 9. Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.题意:判断一个数是不是回文数。 通常情况下,我们可以把这个数转化为一个字符串,然后反转,判断相等。但题目要求不能使用额外空间,所以,抛弃。我的想法是循环将数字反转,比较。public class Solution { public boolea原创 2017-08-14 19:21:03 · 265 阅读 · 0 评论 -
Java 语言程序设计 基础篇 原书第10版 第四章 第1,6~12,16题答案
import java.util.Scanner;/** * @author lenovo * */public class Main { // 4.1 public static void question1() { Scanner cin = new Scanner(System.in); System.out.print("Ente...原创 2018-03-12 19:59:59 · 1641 阅读 · 0 评论