落絮飞雁

顺流而下,把梦做完

HDOJ5302:Connect the Graph——无向图构造

Problem Description

Once there was a special graph. This graph had n vertices and some edges. Each edge was either white or black. There was no edge connecting one vertex and the vertex itself. There was no two edges connecting the same pair of vertices. It is special because the each vertex is connected to at most two black edges and at most two white edges.

One day, the demon broke this graph by copying all the vertices and in one copy of the graph, the demon only keeps all the black edges, and in the other copy of the graph, the demon keeps all the white edges. Now people only knows there are w0 vertices which are connected with no white edges, w1 vertices which are connected with 1 white edges, w2 vertices which are connected with 2 white edges, b0 vertices which are connected with no black edges, b1 vertices which are connected with 1 black edges and b2 vertices which are connected with 2 black edges.

The precious graph should be fixed to guide people, so some people started to fix it. If multiple initial states satisfy the restriction described above, print any of them.

Input

The first line of the input is a single integer T (T≤700), indicating the number of testcases.

Each of the following T lines contains w0,w1,w2,b0,b1,b2. It is guaranteed that 1≤w0,w1,w2,b0,b1,b2≤2000 and b0+b1+b2=w0+w1+w2.

It is also guaranteed that the sum of all the numbers in the input file is less than 300000.

Output

For each testcase, if there is no available solution, print −1. Otherwise, print m in the first line, indicating the total number of edges. Each of the next m lines contains three integers x,y,t, which means there is an edge colored t connecting vertices x and y. t=0 means this edge white, and t=1 means this edge is black. Please be aware that this graph has no self-loop and no multiple edges. Please make sure that 1≤x,y≤b0+b1+b2.

Sample Input

2
1 1 1 1 1 1
1 2 2 1 2 2

Sample Output

-1
6
1 5 0
4 5 0
2 4 0
1 4 1
1 3 1
2 3 1

 

题目大意是构造一个无向图。先考虑白色边,构造常链连接1和2即可。注意排重。

参考代码:

 

#include
#include
#include
#include
#include
using namespace std;
#define sf scanf
int T;
int a[5],b[5];
int d[1000005];
int main()
{
    sf("%d",&T);
    while(T--)
    {
        for(int i = 0;i
	

DIY直流数字式电压表

项目已经开源在Github:https://github.com/luoxufeiyan/Electronic-voltmeter 求star~


 

简单来说就是做一个直流数字电压表(当然也可以改成应变片作成水平仪、改成温度传感器做成温度计、测测雾霾之类的……)。单片机为STC89C51,数模转换芯片为ADC0809 。做成之后是这个样子的:

同时还可以外接蓝牙模块(本例中用的HC-05)连接电脑或者手机进行实时监控,比如这样:

由于微软的系统限制,WindowsPhone上只做个一个半残品,就不上图了……


 

准备:

准备材料请见这里,除此之外可能还需要这些软件:

  • Proteus (制作原理图和仿真)
  • Altium Designer (制作PCB图和布线)
  • Keil (集成开发环境)

代码可以在项目的Github中找到。

焊接调试:

小心谨慎,没什么好说的。

调试时请先调节电位器来改变液晶屏的对比度。

上位机开发:

本例中为通过UART发送电压数据,请查阅对应开发平台的调用方法。

高级OFFICE应用:对正文进行排版

  • 使用多级符号对章名、小节名进行自动编号:

参见:创建项目符号或编号列表 – Word

  • 创建自动目录

参见:创建目录或更新目录 – Word

 

基本就学了这些东西。OFFICE官方的说明文档很全很详细。就直接引用两个链接了。Onenote数据全丢了好伤心。

回到系列目录

HDOJ1085:Holding Bin-Laden Captive!——母函数

Problem Description
We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of China!
“Oh, God! How terrible! ”

Don’t be so afraid, guys. Although he hides in a cave of Hang Zhou, he dares not to go out. Laden is so bored recent years that he fling himself into some math problems, and he said that if anyone can solve his problem, he will give himself up!
Ha-ha! Obviously, Laden is too proud of his intelligence! But, what is his problem?
“Given some Chinese Coins (硬币) (three kinds– 1, 2, 5), and their number is num_1, num_2 and num_5 respectively, please output the minimum value that you cannot pay with given coins.”
You, super ACMer, should solve the problem easily, and don’t forget to take $25000000 from Bush!

Input
Input contains multiple test cases. Each test case contains 3 positive integers num_1, num_2 and num_5 (0<=num_i<=1000). A test case containing 0 0 0 terminates the input and this test case is not to be processed.

Output
Output the minimum positive value that one cannot pay with given coins, one line for one case.

Sample Input
1 1 3
0 0 0

Sample Output
4

 

参考代码:

#include
#include
#include
int c1[1000],c2[10000];
int main()
{
	int n1,n2,n5;
	while(scanf("%d%d%d",&n1,&n2,&n5)==3,n1+n2+n5)
	{
		int n,i,j,k;
		n=n1+n2*2+n5*5;
		for(i=0;i

 

高级OFFICE应用:学习笔记

公选课程:『高级OFFICE应用』的学习笔记,每周一更新,已经完结。 READ MORE →

高级OFFICE应用:邀请函制作

第一次课介绍的是如何制作邀请函。 READ MORE →

HDOJ1038:Biker’s Trip Odometer——数学题

Problem Description
Most bicycle speedometers work by using a Hall Effect sensor fastened to the front fork of the bicycle. A magnet is attached to one of the spokes on the front wheel so that it will line up with the Hall Effect switch once per revolution of the wheel. The speedometer monitors the sensor to count wheel revolutions. If the diameter of the wheel is known, the distance traveled can be easily be calculated if you know how many revolutions the wheel has made. In addition, if the time it takes to complete the revolutions is known, the average speed can also be calculated.
For this problem, you will write a program to determine the total distance traveled (in miles) and the average speed (in Miles Per Hour) given the wheel diameter, the number of revolutions and the total time of the trip. You can assume that the front wheel never leaves the ground, and there is no slipping or skidding.

Input
Input consists of multiple datasets, one per line, of the form:

diameter revolutions time

The diameter is expressed in inches as a floating point value. The revolutions is an integer value. The time is expressed in seconds as a floating point value. Input ends when the value of revolutions is 0 (zero).

Output
For each data set, print:

Trip #N: distance MPH

Of course N should be replaced by the data set number, distance by the total distance in miles (accurate to 2 decimal places) and MPH by the speed in miles per hour (accurate to 2 decimal places). Your program should not generate any output for the ending case when revolutions is 0.

Constants

For p use the value: 3.1415927.
There are 5280 feet in a mile.
There are 12 inches in a foot.
There are 60 minutes in an hour.
There are 60 seconds in a minute.
There are 201.168 meters in a furlong.

Sample Input
26 1000 5
27.25 873234 3000
26 0 1000

Sample Output
Trip #1: 1.29 928.20
Trip #2: 1179.86 1415.84

一道数学题。简单水过。注意格式即可。
代码:

#include
#define Pi 3.1415927

int main()
{
	int n,c=0;
	double t,d,v,s;
	while(scanf("%lf%d%lf",&d,&n,&t)!=EOF && n!=0)
	{
		s=n*Pi*d/12/5280;
		v=s/(t/60/60);
		printf("Trip #%d: %.2lf %.2lf\n",++c,s,v);
	}
		return 0;
}

开站十四周年纪念

今天是建站十四周年纪念日。

不知不觉又过了一年。点开网站,看起来与去年相似;闭上眼睛,诸多变化无以细表。

最大的变化莫过于网站底部添加了一行备案信息。去年十月网站完成了备案并将主机迁回国内。这其中有太多的故事,请原谅我无法一一讲述。

邮品收藏网站终于『千呼万唤始出来』 。展示邮品的念头由来已久,但是一直没想清楚怎么去做。寒假期间总算是弄出了demo。展览的邮品也只有区区数百枚(拍照效果不理想,暂时还没找到好办法。详见:『邮品收藏搭建笔记』系列)。希望今年能把这个坑填上……

建了个直播频道,点击网站右上角的『LIVE』访问。不定期直播,基本看脸缘。

R.I.P Ian Murdock

万物之中,希望最美;最美之物,永不凋零。

邮品收藏搭建笔记:目录

整理这篇目录的时候正巧是情人节,祝各位情人节快乐。

READ MORE →

邮品收藏搭建笔记:需求

日戳也好,印章也罢。这些东西往往都需要一个载体。毕竟,没见过谁收藏日戳是在一张大白纸上的。我一般用明信片或者是邮戳卡作为载体。

但是收集的多了,问题就来了:大量的明信片不方便分类管理。一枚戳片可以按照地区、种类、时间等多种维度进行划分,但一枚明信片最终只能被放到一个档案袋下。划分管理诸多不便。

综上所述,目前需求如下:

  • 统计出现有邮戳数量
  • 分类管理各类戳片
  • 对外展示

因此最简单的方式就是把所有邮戳都扫描下来,搭个图片站,用MySQL数据库管理。因此,就有了这个系列,记录下这个图片站——落絮飞雁的邮品收藏 的搭建过程。

 

关于扫描

大一的时候用手机拍了一部分邮戳,但是只有邮票和邮戳部分,不是整张明信片。而且手机拍的也不是很清楚。之后尝试了用单反拍整张明信片,效果也不是很理想,每张照片都需要裁剪和后期处理之后才能用。考虑到目前明信片的数量,还是算了吧。

比较理想的情况就是用扫描仪扫描。不过没有扫描仪……

 

所以图片张用的暂时还是手机拍的照片。只有五百枚左右,而且不是很清楚。慢慢来吧。