Vanilla_chan

永远可爱 永远善良

F - Breakdown

Problem

给你一个由 \(N\) 个顶点和 \(M\) 条边组成的简单无向图。每个顶点拥有权重\(W_i\),并且被放置了\(A_i\)个棋子。

只要图形上还有棋子,就重复下面的操作:

  • 首先,从图形中选择一个(有棋子的)顶点\(x\)并移除一个棋子。
  • \(x\)相邻点中选择出一些点组成集合\(S\)(可以不选),要保证这个集合内的所有点的权重之和小于顶点\(x\),即\(\sum_{y \in S} W_y \lt W_x\),并在\(S\)中的每个顶点上放置一个棋子。

请求出最多最多能进行多少次这样的操作。

可以证明,无论如何操作,在有限次迭代后,图形上将没有棋子。

阅读全文 »

MVVM-命令模式的实现与应用

本文同时为b站WPF课程的笔记,相关示例代码

绑定

这个其实前面已经讲过一部分

使用{Binding}设置数据绑定,将控件的属性绑定到 ViewModel 的相应属性。

比如说需要注意,在xaml中绑定的不再是UserNamePassword了,而是loginModel.UserNameloginModel.Password

还要为命令和用户交互设置绑定,例如按钮点击事件可以绑定到 ViewModel 中的命令。

命令

在MVVM中,通常不会在 View 的代码后置文件(比如这里是MainWindow.xaml.cs)中编写逻辑代码,而是使用命令来处理用户交互,如按钮点击。

阅读全文 »

本文同时为b站WPF课程的笔记。 这篇博文主要围绕MVVM架构中的Model和ViewModel的创建、配置和数据绑定展开,为读者提供了如何在WPF应用中实现MVVM架构的详细指南。View的具体实现细节没有被深入讨论,这一部分内容将在下一篇文章中讨论。MVVM:Model-View-ViewModel,是一种软件架构的模式。通过引入一个中间层ViewModel,分离用户界面的表示层(View)和业务逻辑层(Model)。

阅读全文 »

绑定与通知属性到界面

本文同时为b站WPF课程的笔记,相关示例代码

前言

在上一篇文章C#代码事件里面,我们介绍了利用给控件命名的方式,在后端代码中访问并修改属性。这样子直截了当,但是这样后端代码依赖于前端。如果前端的代码变动较大,后端代码可能要大面积重构。

于是利用绑定的这种方法,将前后端分离,前端只需把需要修改的属性设置好绑定变量名,后端只需盯着这些变量名进行操作。

这样还可以实现前后端双人开发,后端开发者只需把那些操作的接口名称告诉前端,让对方去绑定相应的空间属性即可。

阅读全文 »

C#代码事件

从今天开始,WPF 的学习将上升到一个新的高度。之前主要都是围绕着界面上的内容,今天了解 C# 代码,让界面真正意义上能够有功能。

本文同时为b站WPF课程的笔记,相关示例代码

上节课自定义按钮模板以及设置触发器用触发器实现了鼠标移入和点击时按钮样式变化效果。这节课我们试着用 C# 代码来写这样的功能。

在 WPF 中,鼠标移入、鼠标点击……都被定义成了一个个事件。比如说点击的时候,可以写一个点击的事件,让其执行相应的代码。

阅读全文 »

自定义按钮模板以及设置触发器

本文同时为b站WPF课程的笔记,相关示例代码

对应09

自定义模板

对于当前的这个样式不满意——想要自己控制它这个控件长什么样子

比如在一节课中,为了实现圆角按钮,我们是从网上面抄了一段代码过来

那么,如何建立一种自带圆角的按钮模板呢?

阅读全文 »

大部分能够想到的属性,xaml里面都是自带了的。可以多去网络上搜一搜。比如说高度、宽度、文本、颜色、背景色。假如我们需要给多个按钮实现相同的尺寸大小背景色,那么每一个按钮都需要附加上多个属性,而且也不好统一调整。所以我们引入 Style 样式。

阅读全文 »