num

Codeforces Round #318 div2

浪尽此生 提交于 2020-02-07 07:18:27
每天一套AK div2 计划开始了。。。 A. Bear and Elections time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Limak is a grizzly bear who desires power and adoration. He wants to win in upcoming elections and rule over the Bearland. There are n candidates, including Limak. We know how many citizens are going to vote for each candidate. Now i -th candidate would get a i votes. Limak is candidate number 1. To win in elections, he must get strictly more votes than any other candidate. Victory is more important than everything else so Limak decided to

45cards shuffling洗牌

怎甘沉沦 提交于 2020-02-07 07:14:13
对于任意类型的纸牌游戏洗牌都是比较重要的。由于只有少数编程语言自带随机混洗数组的内置函数(比如PHP),所以有必要学习一些有用的算法。 我们以下面的符号来代替卡牌: ranks : A , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , T , J , Q , K suits : C , D , H , S 这里面 CQ 代表 “梅花Q(Queen of Clubs)”,HT 代表 “红桃10(Ten of Hearts)”,D2 代表 “方片2(Two of Diamonds)”,SA 代表 “黑桃A(Ace of Spades)”。 一共有52张牌,所有在洗牌前应该将它们放入包含52个元素的数组中。数组的初始排序如下:13张梅花,然后是13张方片,然后是13张红桃,最后是13张黑桃。在每种花色中卡牌从 Ace 到 King 排列,因此整个排序就像这样: [ CA , C2 , C3 , . . . , CQ , CK , DA , D2 , . . . , DK , HA , H2 , . . . , HK , SA , S2 , . . . , SK ] 例如,我们拿第一张牌 CA 然后为它生成一个随机数 15 - 这意味着第一张牌需要移动到 D3 所在的15这个位置 - 然后 D3 应该移动到第一张牌所在的位置 0。然后我们拿位置 1 上的 C2 这张牌

$vjudge-$搜索专题题解

本秂侑毒 提交于 2020-02-07 06:47:35
退役了,刷点儿无脑水题$bushi$放松下$QwQ$ 然后先放个 链接 ,,,$QwQ$ $A$ 虽然是英文但并不难$get$题目大意?就说给定一个数独要求解出来,$over$ 昂显然直接$dfs$加剪枝就成?显然就是个考剪枝技巧的题呗$QwQ$ 首先显然在$dfs$的过程中每次一定是找到可能的取值最少的那个格子填? 然后考虑怎么记录每个格子的取值数量? 昂可以考虑给每行每列每个九宫格分别开个二进制数存哪些数被用了,然后对每个格子就把它这行这列这九宫格或起来,剩下的就是能用的了$QwQ$.而且因为是个$dfs$所以可以设成全局变量$QwQ$ $over$ 还有一个方法是$dlx$,老年退役选手不配拥有脑子不想学不写了$QwQ$ 阿还有就我没想到很好的方法找可能的取值最少的格子,,,所以我决定先不写,,,发现能过于是就不写了$QwQQQQQ$ 然后因为我是用$lowbit$找可能取值,所以找到的都是1嘛,所以在这题里面我都是1表示还没用0表示用了$QwQ$ #include<iomanip> #include<cstdio> #include<map> using namespace std; #define il inline #define gc getchar() #define ri register int #define rb register bool #define

C++二维数组动态申请内存

谁都会走 提交于 2020-02-07 05:05:17
好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了。怪我,大二下实在太颓废了,没啥作为。 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的。今天用到了,顺便写下来,适当时候给C++初学者用用。 -----------C++二维数组动态申请内存-------------- 如果对new和delete不是很了解的话可以到这里来看看,http://www.cnblogs.com/hazir/p/new_and_delete.html 首先,我们一般需要用到数组的时候,都是直接声明,比如: 1 int array[3][3]; 但是,在某些情况下,数组的维数我们是不知道的,可能是等待用户输入维数,这时候需要用变量来指定维数了。可是,我们不能直接这样声明数组,因为C++不允许直接用变量作为维数声明,必须用常量,像这样就会报编译错误: 这时候就需要用new来动态申请数组了。我们一步一步来,申请一维数组的时候,我们可以这样写: int num = 3; int* array = new int[num]; 这段代码的意思就是,用new来申请num个int类型的空间,然后返回那段空间的首地址,再赋给array。可见array是一个int类型的指针,指向那段空间的首地址。语法和逻辑无误,正常运行。 但是,申请二维数组的时候

Python多线程与多进程

 ̄綄美尐妖づ 提交于 2020-02-07 03:00:31
Python多进程 1.用os.fock函数 2.使用multiprocessing模块 方法1只能在linux系统中使用 方法2提供了跨平台的多线程模块 #coding:utf-8 from multiprocessing import Process from time import sleep def func ( num ) : print '进程%d开始' % ( num ) sleep ( num ) print '进程结束' num = 5 for i in range ( 1 , num + 1 ) : p = Process ( target = func , args = ( i , ) ) p . start ( ) #p.join()#添加这句会等待子线程结束之后主线程再结束 还有通过继承的方式实现多进程 #coding:utf-8 from multiprocessing import Process from time import sleep def func ( num ) : print '线程%d开始' % ( num ) sleep ( num ) print '线程%d结束' % ( num ) class MyProcess ( Process ) : def __init__ ( self , num ) : super (

优先队列专题

对着背影说爱祢 提交于 2020-02-07 02:06:29
1、UVALive 3135 Argus   题意:有若干注册信息,每个id每经过一个周期返回一个id信息。求前k个返回信息的id。如果两个信息返回的时间点相同,则小的那个先返回。   思路:优先队列简单应用。 1 #include<iostream> 2 #include<queue> 3 #include<map> 4 #include<cstdio> 5 using namespace std; 6 char s[10]; 7 struct nd 8 { 9 int id; 10 int v; 11 nd(int ii=0,int vv=0):id(ii),v(vv){ } 12 friend bool operator<(const nd&a, const nd&b) 13 { 14 if (a.v == b.v) return a.id > b.id; 15 else return a.v > b.v; 16 } 17 }; 18 int main() 19 { 20 priority_queue<nd>q; 21 map<int, int>mp; 22 while (~scanf("%s", s)) 23 { 24 if (s[0] == '#')break; 25 int id, period; 26 scanf("%d%d", &id, &period); 27 q

python实现飞机大战游戏

≯℡__Kan透↙ 提交于 2020-02-07 01:16:32
左边就是效果图了,直接上代码 bullet.py import pygame class Bullet1 ( pygame . sprite . Sprite ) : def __init__ ( self , positon ) : pygame . sprite . Sprite . __init__ ( self ) self . image = pygame . image . load ( "images/bullet1.png" ) . convert_alpha ( ) self . rect = self . image . get_rect ( ) self . rect . left , self . rect . top = positon self . speed = 12 self . active = True self . mask = pygame . mask . from_surface ( self . image ) def move ( self ) : self . rect . top - = self . speed if self . rect . top < 0 : self . active = False def reset ( self , position ) : self . rect . left , self .

leetcode的Hot100系列--347. 前 K 个高频元素--hash表+直接选择排序

我的未来我决定 提交于 2020-02-07 01:05:32
这个看着应该是使用堆排序,但我图了一个简单,所以就简单hash表加选择排序来做了。 使用结构体: typedef struct node { struct node *pNext; int value; // 数值 int frequency; // 频率 }NODE_S; 思路: hash表用来存储每个值对应的频率,每读到一个数字,对应的频率就加1。 然后从表中再把这些数据读取出来。 先创建两个长度为k的数组,一个用来记录频率,一个用来记录对应的数值。 读取数据的时候,使用频率做排序,在排序的时候,也要对应的交换数值的数组。 /** * Note: The returned array must be malloced, assume caller calls free(). */ #define HASH_LEN 10 typedef struct node { struct node *pNext; int value; int frequency; }NODE_S; NODE_S *get_node(NODE_S **pstHead, int num) // 获取num对应的节点 { int n; NODE_S *pstTemp; if (num<0) n = -num; else n = num; pstTemp = pstHead[n%HASH_LEN]; while

手撸网络结构—ResNet

我的梦境 提交于 2020-02-07 00:50:50
ResNet 核心就是残差学习单元,相比常规神经网络残差学习单元能够避免出现梯度消失的现象。 ResNet使用两种残差单元,左图(BasicBlock)对应的是浅层网络,而右图(Bottleneck)对应的是深层网络。 在每组残差单元中,第一个单元需要进行下采样从而与单元输出的结果进行匹配。 resnet18采用的都是BasicBlock进行的叠加,前两组残差单元如下图: resnet50采用的都是Bottleneck进行的叠加,前两组残差单元如下图: 文字功力有限,直接上代码: import torch import torch . nn as nn from torchsummary import summary def conv3x3 ( in_planes , out_planes , padding = 0 , stride = 1 , bn = True , rl = True ) : """3x3 convolution with padding""" layers = [ ] layers . append ( nn . Conv2d ( in_planes , out_planes , kernel_size = 3 , padding = padding , stride = stride ) ) if bn : layers . append ( nn .

CF932F(李超线段树+dp)

☆樱花仙子☆ 提交于 2020-02-07 00:38:42
CF932F(李超线段树+dp) 此题又是新玩法, 李超线段树合并优化 \(dp\) 一个显然的 \(\Theta(n^2)dp\) : \(dp[x]\) 表示从x出发到叶子节点的最小代价 \(dp[x] = \min(dp[y] + a[x] * b[y]) ~~(y \in subtree(x))\) 如果我们将 \(b[y]\) 看成斜率, \(dp[y]\) 看成纵截距, \(a[x]\) 看成横坐标, 那么问题转为了在平面上有一些直线, 选出与直线 \(x = a[x]\) 相交的最靠下的点吗, 李超线段树板题, 但这道题出到了树上所以要用上线段树合并 因为有负数所以要整体右移一下, 相应的直线也需变换, 具体见代码 代码: #pragma GCC optimize(3) #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define re register #define ll long long using namespace std; template <typename T> void read(T &x) { x = 0; bool f = 0; char c = getchar(); for (;!isdigit(c);c=getchar()) if