continue

16-笔记:Python3 循环语句

泄露秘密 提交于 2019-12-02 15:50:11
Python 中的循环语句有 for 和 while Python 循环语句的控制结构图如下所示: while 循环 Python 中 while 语句的一般形式 while 判断条件: 语句 同样需要注意冒号和缩进。另外,在 Python 中没有 do..while 循环 #!/usr/bin/env python3# -*- coding:utf-8 -*-n = 100sum = 0counter = 1while counter <= n: sum = sum + counter counter += 1print('1 到 %d 之和为:%d' % (n, sum)) 无限循环 可以通过设置条件表达式永远不为 false 来实现无限循环 var = 1while var == 1: # 表达式永远为true num = int(input("输入一个数字 :")) print("输入的数字:", num)print("Good bye!") 可以使用 CTRL+C 来退出当前的无限循环 无限循环在服务器上客户端的实时请求非常有用 while 循环使用 else 语句 在 while … else 在条件语句为 false 时执行 else 的语句块 语法格式 while <expr>: <statement(s)>else: <additional_statement(s

[IOI2008]Island

一个人想着一个人 提交于 2019-12-02 06:28:45
题目链接: Click here Solution: 一句话题意:给定基环树森林,求每颗基环树的直径之和 考虑基环树求直径的方法,考虑基环树套路,把环和树分开考虑 我们先把环找出来,对环上的点的子树求直径,再求出这个点开始的最长链,这个很简单,可以用treedp做 考虑一颗基环树的直径可能有哪些情况:基环树上某棵子树的直径或是一棵子树走到另一颗子树 第一种情在我们dp的时候就处理完了,考虑第二种情况怎么做 从一颗子树走到另一颗子树肯定是要经过环上的点的,所以第二种情况必然是一种这样的形式 \(f[x]+f[y]+dis(x,y)\) 其中 \(f[x]\) 表示以 \(x\) 为起点,终点在其子树内的最长链的长度,在dp中已经处理好了, \(dis(x,y)\) 表示环上两点 \(x,y\) 的距离 我们把环拆成链来考虑,再把这条链倍长,这样它就能描述任意 \(dis(x,y)\) 了 我们考虑记 \(dis[x]\) 表示 \(x\) 到链上第一个点的距离,那么 \(dis(x,y)=dis[x]-dis[y]\) (这里我们钦定 \(x\) 在 \(y\) 之后)则直径可被表述为 \(f[x]+f[y]+dis[x]-dis[y]\) 倘若我们直接对于环上每个点枚举另外一个点来算直径,时间复杂度是 \(O(n^2)\) 的,考虑如何来优化 考虑把上面的式子转化形式: \(f[x

[USACO13JAN]岛游记Island Travels

蹲街弑〆低调 提交于 2019-12-02 03:39:40
洛咕 题意:给你一张 \(r*c\) 的地图,有’S’,’X’,’.’三种地形,所有判定相邻与行走都是四连通的.我们设’X’为陆地,一个’X’连通块为一个岛屿,’S’为浅水,’.’为深水。刚开始你可以降落在任一一块陆地上,在陆地上可以行走,在浅水里可以游泳。并且陆地和浅水之间可以相互通行.但无论如何都不能走到深水。你现在要求通过行走和游泳使得你把所有的岛屿都经过一边.Q:你最少要经过几个浅水区?保证有解. \(r,c<=50\) ,联通块 \(<=15.\) 分析:这道题的思路很好想,就是毒瘤.集合了 \(dfs\) 求联通块, \(bfs\) 求最短路,状压 \(dp\) 多种算法.我在每个算法上都挂了半个小时......(谁能想到我现在用 \(dfs\) , \(bfs\) 都各种问题呢 \(???\) ) 联通块个数 \(<=15\) ???状压 \(!!!\) 设 \(f[i][j]\) 表示当前走到了第i个联通块,走过的联通块的集合为 \(j\) 时经过的最少的浅水区. \(f[i][j]=min(f[i][j],f[k][j\) ^ \((1<<(i-1))])+dis[i][k]\) ,其中 \(dis[i][k]\) 表示第i个联通块和第 \(k\) 个联通块之间的最短距离. 所以我们只要 \(dfs\) 预处理出所有的联通块,然后求任意两个联通块之间的最短路

P5596 【XR-4】题 笔记

二次信任 提交于 2019-12-01 19:41:04
P5596 【XR-4】题 其实这题我昨天没做出来……所以今天写一下笔记 昨天我还信誓旦旦地说这一定是一道黑题 \(OTZ\) 。果然菜是原罪。 另外吐槽一下科技楼机房频繁停电,昨天写了两小时的树刨和倍增全没了 题目描述 小 X 遇到了一道题: 给定自然数 \(a,b\) 求满足下列条件的自然数对 \((x,y)\) 的个数: \(y^2 - x^2 = ax + b\) 他不会,只好求助于精通数学的你。 如果有无限多个自然数对满足条件,那么你只需要输出 \(inf\) 即可。 输入格式 一行两个整数 \(a,b\) 。 输出格式 如果个数有限,一行一个整数,表示个数。 如果个数无限,一行一个字符串 \(inf\) 。 题解 \(y^2 - x^2 = ax + b\) \(x^2 + ax + b = y^2\) 最朴素的第一想法一定是移项 刚开始想了一下求两函数交点,但是似乎不好搞, 而且当时等号右边的方程还写错了 窝太菜了 \(QWQ\) 然后正解应该是配一下方(如果我当时没有去想狗屎枚举…… \((x + \frac{1}{2}a)^2 + b - \frac{1}{4}a^2 = y ^ 2\) 这个式子就比较好看了,两个异号平方数,还有一项是常数,一定可以用平方差公式 \((x + \frac{1}{2}a)^2 - y ^ 2 = \frac{1}{4}a^2 - b

continue、break与goto语句

眉间皱痕 提交于 2019-12-01 12:38:53
1、含有continue与break的switch在for循环中的用法 public class SwitchTest { public static void p(Object o) { System.out.println(o); } public static void main(String[] args) { int sum = 0; for (int i = 1; i < 5; i++, p("执行迭代后,i = " + i)) { p("执行循环前,i = " + i + ",sum = " + sum); switch (i) { case 1: sum = sum + 2; case 2: sum = sum + 4; p("continue跳出switch,中断当前循环,sum = " + sum); continue; case 3: sum = sum + 16; p("break跳出switch,sum = " + sum); break; default: sum = sum + 4; p("不匹配任何case后,i = " + i + ",sum = " + sum); } p("继续执行当前循环,i = " + i); } p("for循环执行结束,sum = " + sum); } }   输出: 执行循环前,i = 1,sum = 0

Java Break 与 Continue

六月ゝ 毕业季﹏ 提交于 2019-12-01 09:43:50
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符串 Java Math Java 布尔运算 Java If … Else Java Switch Java While 循环 Java For 循环 Java Break 与 Continue Java 数组 Java 异常 Java 方法 Java 类与对象 Java 类、对象 Java 类的属性 Java 类方法 Java 构造函数 Java 修饰符 Java 封装 Java 包 Java 继承 Java 多态 Java 内部类 Java 抽象 Java 接口 Java 枚举 Java 用户输入/Scanner Java 日期与时间 Java ArrayList Java HashMap Java 包装类 Java 文件 Java Break 前面章节中,介绍switch语句时,学习过 break 语句,它用于“跳出”switch语句。 break 语句也可以用来跳出循环。 这个例子中,当i等于4时跳出循环: 示例 for (int i = 0; i < 10; i++) { if (i == 4) { break; } System.out.println(i); } Java

ZZZZZZGZY整理

孤者浪人 提交于 2019-12-01 08:56:36
没有上司的舞会 树可以DP的天然优势就是子树自成一个子问题,只考虑在节点处合并即可。 \(f[i][0]\) 表示这个点不选择 \(f[i][1]\) 表示这个点选择 代码: #include <bits/stdc++.h> using namespace std; #define gc getchar() #define rep(i , x, y) for(int i = x;i <= y;++ i) #define sep(i , x, y) for(int i = x;i >= y;-- i) #define PII pair<int,int> #define mk make_pair #define fi first #define se second inline int gi() { int x = 0, f = 1;char c = gc; while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;} while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;} return x * f; } const int maxN = 6000 + 7; vector<int> g[maxN]; int a[maxN]; int f[maxN][2]; bool vis

CF762F Tree nesting

≯℡__Kan透↙ 提交于 2019-12-01 08:44:45
题目连接 问题分析 可以给小树钦定一个根, \(Dp[i][j]\) 表示大树上的点 \(i\) 对应到小树上的点 \(j\) 的可能的方案数。然后每一步转移都是一个状压DP(将小树是否被匹配状压,然后枚举大树上的点和小树上的点匹配)。 但如果这样统计的话,在两种情况下有重复: 在小树取不同的根但仍同构; 确定小树的根后,小树的子树同构。 所以我们对钦定根后的小树进行哈希,即可排除第一种重复。而如果小树的某两个子树同构,那么就在统计的时候强行钦定一个顺序,这样就解决了第二种重复。 参考程序 #include <cstdio> #include <cstring> #include <algorithm> #include <set> const int Maxn = 2000; const int Maxm = 12; const int MaxAlpha = 1 << Maxm; int Mod = 1e9 + 7; struct edge { int To, Next; edge() {} edge(int _To, int _Next) : To(_To), Next(_Next) {} }; struct node { int Value, Index; node() {} node(int _Value, int _Index) : Value(_Value),

How to continue executing code after calling ShowDialog()

和自甴很熟 提交于 2019-12-01 02:24:40
the Form.ShowDialog() method causes the code to be halted until the newly called form is closed. I need the code to continue running after the ShowDialog() method is called. I googled and read about using backgroundworker? But that is the first time i have heard of that and never used it before. Form2 form2this = new Form2(); form2this.ShowDialog(); MessageBox.Show("Something"); This code gets executed after clicking a button, how can i still call ShowDialog to prevent the user from interacting with the main form but still allowing the main form to continue with its work? Sorry if its been