Lucky

谁在玩探探?

谁说我不能喝 提交于 2020-08-12 20:00:11
作者|找找 早段时间,硬糖君偶然看到这么组数据:过去六年时间,近3.6亿用户在探探活跃,且相互喜欢超151亿次,相当于平均每位用户成功匹配近41次。 精神暴击,我!不(好)!相(柠)!信(檬)! 每次逛豆瓣、B站,或者其他啥年轻化社区,“社恐”“母单”绝对是高频词汇。这届年轻人,看着好像明明很“怕人”啊。尤其是大城市扎堆的独居青年,似乎早就习惯了单身状态,时不时还会站出来分享精致生活指南。 线下“齐出家”,线上“交际花”。你们嘴里嚷嚷着“注孤生”,背地里却偷偷和人“看对眼”40次?!不地道啊,单纯的硬糖君竟然还当真了。因此连续几年弃考社交课,硬生生拖成了芳龄三十的留级生。 与其心酸,不如奋进。半个月前,硬糖君决心策划了一次田野调查,试着拼出当代青年的社交图景。而探探作为经常与Tinder同时被提及的交友APP,无疑是重要且典型的取样点。 除了深度试用探探外,硬糖君还通过亲朋好友、同事客户、豆瓣微博等渠道,随机征集了50多个社交故事。这些探探用户大多是90后,从事金融、摄影、营销等行业,覆盖北京、上海、四川、长沙近20个城市。 今天,硬糖君想和观众老爷们分享几个印象深刻的采访者,以及他们的探探日常。咱不必为“社恐”困扰,先来看看别人私下究竟为何、如何社交的。抄好答案,再去做题。 (以下采访者皆为化名。想要探探ID?先来转发再看) 深夜,找点陪伴感 熬夜仿佛是当代青年的一种精神依赖

利用jsoncpp进行创建JSON

萝らか妹 提交于 2020-08-12 14:58:09
一、基本概念 1、定义 官方对JSON格式的定义: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。 JSON最初的来源于JavaScript这门语言,随着被广泛使用,几乎每门开发语言都有处理JSON的API。常常被用作数据交互的两种交互格式是json和xml,我之前也使用过一个叫mini-XML的库进行xml文件的解析,但是使用起来并没有jsoncpp这么容易上手。 json的官网: http://www.json.org/json-zh.html ,在官网有对json的基本介绍,并且提供了不同语言支持json的库的列表,可根据自己的实际情况进行调用。 2、语法规则 JSON有2种结构形式,以键值对形式或数组形式,官网关于这两种结构的描述如下: “名称/值”对的集合(A collection of name

竞赛题解

那年仲夏 提交于 2020-08-12 05:17:29
\(\mathcal {NOIP2018}\) 赛道修建 - 竞赛题解 额……考试的时候大概猜到正解,但是时间不够了,不敢写,就写了骗分QwQ 现在把坑填好了~ 题目 (Copy from 洛谷) 题目描述 C 城将要举办一系列的赛车比赛。在比赛前,需要在城内修建 \(m\) 条赛道。 C 城一共有 \(n\) 个路口,这些路口编号为 \(1,2,...,n\) ,有 \(n-1\) 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口。其中,第 \(i\) 条道路连接的两个路口编号为 \(a_i\) 和 \(b_i\) ,该道路的长度为 \(l_i\) 。借助这 \(n-1\) 条道路,从任何一个路口出发都能到达其他所有的路口。 一条赛道是一组互不相同的道路 \(e_1,e_2,…,e_k\) ,满足可以从某个路口出发,依次经过 道路 \(e_1,e_2,…,e_k\) (每条道路经过一次,不允许调头)到达另一个路口。一条赛道的长度等于经过的各道路的长度之和。为保证安全,要求每条道路至多被一条赛道经过。 目前赛道修建的方案尚未确定。你的任务是设计一种赛道修建的方案,使得修建的 \(m\) 条赛道中长度最小的赛道长度最大(即 \(m\) 条赛道中最短赛道的长度尽可能大) 输入输出格式 输入格式: 输入文件第一行包含两个由空格分隔的正整数 \(n,m\)

微信小程序-转盘抽奖

雨燕双飞 提交于 2020-08-12 00:51:44
微信小程序-转盘抽奖代码: lucky-draw.wxss: .lucky_draw_zp{ width: 502rpx; height: 502rpx; margin: 0 auto; position: relative;} .lucky_draw_zp_img , .lucky_draw_zp_btn{ width: 100%; height: 100%; position: absolute; left: 0; top: 0;} lucky-draw.wxml: <view class="lucky_draw_zp" bindtap="getLucky"> <image style="{{zpRotateDeg}}" class="lucky_draw_zp_img" src="{{zpData.zpImg}}" mode="aspectFit"></image> <image class="lucky_draw_zp_btn" src="../../../images/zp_btn.png" mode="aspectFit"></image> </view> lucky-draw.js: Page({ /** * 页面的初始数据 */ data: { zpData:{ //转盘主图图片url zpImg:'../../../images/zp.png',

EOS基础全家桶(十五)智能合约进阶2

筅森魡賤 提交于 2020-08-07 19:40:19
简介 今天我们继续补充智能合约的进阶使用技巧,这次的主题是交易,合约内我们除了可以发起内联action的调用,很多使用还需要直接调用其他的合约action或者以交易的形式调用自身的action。 发起交易/延时交易 在合约内可以非常方便的发起一个交易,无论是调用外部的合约action还是调用自身的,都很容易。 这里可能你会有疑问,为何调用自身的action要通过发起交易的方式呢?一个最主要的原因是需要有交易记录,如果直接作为内联方法调用了,链上是看不到直观的记录的,而我们通过区块链浏览器查看交易时,是需要有交易记录或者交易通知的,才能被查询到。 构建交易 我们首先要引入 #include <eosio/transaction.hpp> ,然后我们来看下面这个代码示例,这段代码来自系统合约eosio.system中delegate_bandwidth.cpp中changebw方法,这个方法在进行资源带宽的抵押和赎回的时候都会调用。而下面的煮这段代码,是调用合约自身的refund退款方法,即在赎回时需要等待3天的赎回期,3天后退款交易会被执行,然后我们赎回的资源就能转账到我们的账户了。 //构建一个transaction eosio::transaction out; //配置action,包括了权限、合约、action名称和参数 out.actions.emplace_back(

“海盗船”正驶向发展中国家,揭秘真实的在线盗版网络

℡╲_俬逩灬. 提交于 2020-08-07 09:36:52
网络盗版如何从一个局部问题演变成一个全球头疼的问题,完美地驾驭国际政治议程,例如利用俄罗斯和乌克兰之间的地缘政治紧张局势,与银行、国际支付系统和托管提供商等法律利益相关者打交道。 作者:kirazhou来源:FreeBuf|2020-08-04 10:21 收藏 分享 The rougher the seas, the smoother we sail (海浪越汹涌,我们航行越平稳)。 《JOLLY ROGER’S PATRONS》,这份报告向公众揭露了发展中国家在线盗版团伙的金融犯罪网络。 多年来,这支庞大的队伍一直在前苏联的安全港繁荣发展,现在,他们已将触角延伸至拉丁美洲和亚洲。 网络盗版如何从一个局部问题演变成一个全球头疼的问题,完美地驾驭国际政治议程,例如利用俄罗斯和乌克兰之间的地缘政治紧张局势,与银行、国际支付系统和托管提供商等法律利益相关者打交道。 网络盗版的背后是一个庞大到难以想象的黑灰产业。The rougher the seas, the smoother we sail (海浪越汹涌,我们航行越平稳),用这句话来形容在线盗版团伙的发展再恰当不过。尽管打击盗版内容分发的行动一直在进行,但这一团伙依然快速发展,甚至飘洋过海,向全球扩张。 事实上,为了确保盗版内容的稳定输出,在线盗版团伙依靠内容分发网络技术(CDN),汇总盗版内容后在俄罗斯和前苏联各州提供了将近80

Linux中一些 Sed命令技巧介绍

a 夏天 提交于 2020-08-05 00:51:08
sed 命令 应用广泛,使用简单,是快速文本处理的利器。它其实没多少技巧,背诵、使用是最合适的学习渠道,属于硬技能。但它又很复杂,因为高级功能太多。本篇不去关注sed的高级功能,仅对常用的一些操作,进行说明。 随着使用,你会发现它和vim的一些理念是想通的,正则表达式的语法也基本上一样,并没有多少学习成本。从个人视野和工作效率上来看,sed 命令 都是程序员必须掌握的一个重要工具。 那些说可以现场 google 用法的,大多习惯将文本拷贝到 excel 里,慢慢磨洋工,遇到大批量文件更是手忙脚乱。不是一家人不进一家门,本文不是为你写的。 一个简单的入门 如图,一个简单的 sed 命令包含三个主要部分:参数、范围、操作。要操作的文件,可以直接挂在命令行的最后。除了命令行,sed也可以通过-f参数指定一个 sed 脚本 ,这个属于高级用法,不做过多描述。 有些示例命令我会重复多次,聪明如你一定能发现其中规律,有时连解释都用不着。 参数 -n 这个参数是--quiet或者--silent的意思。表明忽略执行过程的输出,只输出我们的结果即可。 我们常用的还有另外一个参数 :-i。 使用此参数后,所有改动将在原文件上执行。你的输出将覆盖原文件。非常危险,一定要注意。 范围 1,4 表示找到文件中1,2,3,4行的内容。 这个范围的指定很有灵性,请看以下示例(请自行替换图中的范围部分)。 5

Look for traces of APT attacks through the ZoomEye history api

让人想犯罪 __ 提交于 2020-07-26 12:39:52
Author: Heige(a.k.a Superhei) of KnownSec 404 Team Date: May 25,2020 Chinese version: https://paper.seebug.org/1219/ We had released ZoomEye’s historical data API query interface in ZoomEye 2020 that had launched in January this year: https://medium.com/@80vul/zoomeye-2020-has-started-8414d6aaf38 . Next, I will introduce some examples of using ZoomEye History API to capture the traces of APT team attacks. Instructions for using the historical query API interface: https://www.zoomeye.org/doc#history-ip-search ,Of course we have also updated our ZoomEye SDK support history api: https://github

SDNU 1192.笨小猴(水题)

被刻印的时光 ゝ 提交于 2020-05-08 07:46:12
Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 Input 输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 Output 输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。 Sample Input error Sample Output Lucky Word 2 Hint 单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。 Source NOIP 2008 提高组 #include <cstdio> #include <iostream> #include <cmath> #include < string > #include <cstring> #include <algorithm>

攻防世界 reverse parallel-comparator-200

送分小仙女□ 提交于 2020-05-07 21:26:19
parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/school-ctf-winter-2015/reverse/parallel-comparator-200 linux平台,mark,以后解决。 给出了源代码,关键在于checking函数返回0 void * checking( void * arg) { char *result = malloc ( sizeof ( char )); char *argument = ( char * )arg; *result = (argument[ 0 ]+argument[ 1 ]) ^ argument[ 2 ]; return result; } 另一点是 while ((initialization_number = random()) >= 64 ); int first_letter; first_letter = (initialization_number % 26 ) + 97 ; initialization_number 其实是个固定值,调试时可得到 wp: differences = [0, 9, -9, -1, 13, -13, -4, -11, -9, -1, -7