Codeforces Round #652 div2 总结 & 端午节前小结

CISP-PTE考前实操练习题 CISP-PTE考前学习练习题目,渗透测试功工程师 阅读详情

2020.6.24
连着三天熬夜和一连串要处理的事情已然让我的身体有点吃不消。我只是喜欢想题的那种冥想思路开阔的感觉,但是熬夜还是不能行的。端午节前就暂时不碰竞赛了,昨天晚上算是打完了最后一场比赛。今天补完d就去打打pubg放松一下。

昨天自闭了一天之后晚上紧接着又是开幕雷击。本来以为是22:35的比赛因为我记错时间晚了10min才到。上一秒还在津津有味地看着洛谷日报。qq叮叮叮地响了起来,我一看,朋友问我a会么,我这时候才意识到,完犊子,这都开始了我竟然不知道。吃了一惊的我显然并没有被这一番事情把原本地节奏打乱,而是不慌不忙地下楼拿我买的coco蜜桃红茶冻,不得不说真的蛮好喝的 。

好了,言归正传,看题。首先我打开cf的时候已经5k人过了A,我自闭了,这还怎么翻盘啊?

仔细看了看A,题意是问一个正n边形在xOy平面内能不能在旋转的时候保证有边分别平行于x和y。从大一之后我好久没碰几何数学了,还有点怀念高中手撕双曲线,椭圆这些图形的时候,现在有点陌生了哎,前几天老师还喊我去给高中学弟学妹辅导数学,我。。。。。咳咳,怀什么久,好好看题。好吧,这道题非常显然了,看的时候就想到那就转化为4条平行于坐标轴的边,旁边再塞其他边呗,不难发现塞进去多加的边上下都必须保持一致来维护原状态,那就。。。mod 4看能不能除掉就行了。然后我眼疾手快地把4写成了2wa了一发hhhh。不过好在改了之后过了,但这特么都排到1w名了这还怎么翻盘??
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (400 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        cin>>n;
        if(n % 4 != 0)cout<<"NO"<<endl;
        else cout<<"YES"<<endl;
    }
    return 0;
}

B题一般是离散数学的内容,一看果然是,看是给一个01串然后如果出现10这种就可以删掉两个其中任意一个字符,输出在若干次删除之后字典序最小的串。这题直接模拟肯定会t,肯定要有更好的算法。手动模拟了下,直接考虑分类讨论:
1)如果不存在10子串,那么就不存在删的可能,直接输出原字符串。
2)显然,开头连续的0和结尾连续的1不可能删除,无论中间间隔是什么,一定原本出现在答案中
3)中间,如果存在开头连续0和结尾连续1之外的子串,那么这些子串无论如何都可以被缩减至只剩一个0,因为要字典序最小嘛,一个1也是可以,但是不符合题意。
好了,有了这些就从两头分别扫一遍0和1,加到两个string里面去,记录下停止的下标,如果开头的0和结尾的1不接壤,那么拼接前后的时候中间就添加一个0,如果接壤就直接拼接前缀和后缀。也没那么难嘛,数组没开够re了一发,中间没考虑不加0的情况wa2了一发,然后ac,总算排名回到了6k。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (100000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int a[limit],b[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        string str;
        cin>>n>>str;
        string s = str;
        str = ' ' + str;
        int flag = 1;
        string ans,pre;
        rep(i ,1, n - 1){
            if(str[i] == '1' && str[i + 1] == '0'){
                flag = 0;
                break;
            }
        }
        if(flag){
            cout<<s<<endl;
            continue;
        }
        int fst,scd;
        per(i,1,n){
            if(str[i] == '0'){
                scd = i;
                break;
            }
            ans += '1';
        }
        rep(i ,1,n){
            if(str[i] == '1'){
                fst = i - 1;
                break;
            }
            pre += '0';
        }
        if(fst != scd){
            ans = pre + '0' + ans;
        }else{
            ans = pre + ans;
        }
        cout<<ans<<endl;
    }
    return 0;
}

然后开C,C题意是问有数列a和b,大小分别为n和k,a代表数字,bi代表可以从a拿的个数,b的和等于a的大小,对每个bi都有一个值,分配到的最小和最大的数字之和,问这些数字能分配之后b的值的和最大是多少。肯定不能暴力(废话)。刚看到的时候有点懵。既然说大小那排个序肯定是说的过去的,排着序就想到首先让最大值最大化,那么最大的k个值无论放在哪都是最大,先每个放一个,然后让bi - 1。还剩n-k个值,要让最小值最大化那么首先就要减少在铺垫过程中的损失,那就是从bi最小的开始放,然后统计一下答案就行了,结果又re了一发才过,我疯了,2e6明明可以用的int的结果爆炸了hhh。排名到3k了,还行,其实今天不掉分的任务已经完成了,再去看看d。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (1000000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
int a[limit],b[limit];
int maxx[limit],minn[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    while(kase--){
        cin>>n>>k;
        rep(i ,1,n){
            cin>>a[i];
        }
        sort(a + 1, a + 1 + n,greater<>());
        rep(i ,1,k){
            cin>>b[i];
            maxx[i] = -INF;
            minn[i] = INF;
        }
        sort(b + 1, b + 1 + k);//反向sort一遍
        rep(i ,1,k){
            maxx[i] = minn[i] = a[i];
            --b[i];//捡一个
        }
        int it = 0;
        rep(i,1,k){
            if(b[i] > 0){
                minn[i] = a[k + it + b[i]];
                it += b[i];
            }
        }
        ll ans = 0;
        rep(i ,1,k){
            ans += (minn[i] + maxx[i]);
        }
        cout<<ans<<endl;
    }
    return 0;
}

D,1e9+7取模还多组答案一眼看出是递推或者dp预处理这样,然而11点左右打到D我脑子有些钝了不太能看得出来,查oeis也没查出来什么有用的信息。就去看E,E看了之后感觉是拓扑排序/容斥or费用流,然而这仨中拓扑排序我会一点,容斥和费用流我太菜不会啊(今天跳到一堆费用流的题应该说是疯狂暗示了,然而我直接关了),然后又去看D。手动模拟了一下发现从答案的贡献的增量应该是有一个周期为2的增长,然后中间每个增量过2个周期又开出一朵新的花。那就写写,结果最后也没有调出来,从10开始就不对了也没干交,结果今天早上看到群友的写的就发现我蠢了,旁边的树杈增量是2不是4,怪不得出锅,哎,昨天罚时吃了点亏,掉到4k了只涨了17分,如果按时好好做的话应该是2k左右,然而这能怪谁呢?re和看错时间还是自己的锅,下次注意吧。端午节前就这样,等会去吃饭,放松一下,节后备战牛客多校。
代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (3000000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 988244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
#define FOUT freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\dabiao.txt", "wt", stdout)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,k;
const ll mod = 1e9 + 7;
ll dp[limit],delta[limit];
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    int kase;
    cin>>kase;
    dp[3] = dp[4] = 4;
    delta[3]  = 1;
    delta[4] = 0;
    rep(i ,5, 2e6){
        (dp[i] = dp[i - 1] + 2 * dp[i - 2]) %= mod;
        if(!delta[i - 1] && !delta[i - 2]){
            (dp[i] += 4) %= mod;
            delta[i] = 1;
        }
    }
    while(kase--){
        cin>>n;
        if(n == 1 || n == 2){
            puts("0");
            continue;
        }
        cout<<(dp[n]%mod)<<endl;
    }
    return 0;
}
【WRF湿度调整策略】WRF/ERA5湿度数据对比 阅读详情

相关推荐

LTspice仿真实战:共模电感差模/共模插入损耗测试全流程(附WE 744821201参数)

本文以Würth Elektronik 744821201型号共模电感为例,详细介绍了在LTspice中搭建差模与共模插入损耗测试电路的全流程。通过从规格书提取关键参数、构建SPICE模型,到执行仿真并与官方数据对比,旨在帮助硬件工程师在PCB设计前期精准预测EMC性能,弥合器件选型与系统设计之间的鸿沟。

info6的博客 761

Codeforces Round #652(div2)

A.FashionabLee 解题思路:以正四边形为基础,首先正方形时x轴平行边和y轴平行边之间直接连接,边数大于4时,把x轴平行边和y轴平行边拿开,观察将它们再次连接需要几条边就补几条边,此时得到的多边形必定满足条件,容易推知,构成8边形时恰好补四条边,补八条边构成12边形,每次补4条边,容易推知4的倍数即可满足 ac code: #include&lt;iostream&gt; using namespace std; int main() { int n,t; cin&gt;&gt;t; w

fusu123456789的博客 205

Canoe主要功能的详细介绍

CANoe是德国Vetor公司推出的一款用于总线开发的设备,全程为CAN open environment。后来随着总线技术的发展,CANoe不仅限于CAN类型的总线开发,还包含LIN、FlexRay、MOST和以太网等开发。在车载网络和ECU开发、测试和分析方面,CANoe几乎长期占据着垄断地位,当然是因为其强大的功能性了。目前用这个工具的主要是整车厂和供应商的网络设计工程是、开发工程师和测试工程师。小编当时安装CANoe的时候也是花了一定的时间和精力,好在没有崩溃。

车载测试 3723

Codeforces Round #652 (Div. 2)

A - FashionabLee 题意 问你一个正n边形,您能否旋转它,让他的某一条边平行于x轴另一条边平行于y轴。 思路 要让他有平行于x轴的边的同时,也有平行于y轴的边。 那么我们只需要让他n边形的360/n是90度的倍数关系即可。画图验证更快。 #include&lt;bits/stdc++.h&gt; #define INF 0x3f3f3f3f #define DOF 0x7f7f7f7f #define endl '\n' #define mem(a,b) memset(a,b,sizeof(a

ACMer_WarYan 302

【无标题】ReaxFF拟合参数以及算法安装

ReaxFF拟合参数以及算法安装

zmzyzm的博客 1419

施密特触发电路详细原理介绍

我们想获得矩形脉冲,有种方法是可以采用整形的方法获得矩形脉冲,但前提是可以找到频率和幅度都符合要求的电压信号。 我们设定矩形脉冲的几个指标。 施密特电路是脉冲波形变换中一种常采用的电路,主要有以下两个特点: 1.输入电平从低电平上升过程中电路状态转换为对应的输入电平,与高电平下降过程中对应的输入转换电平不同。 2.通过电路内部的正反馈使输出电压波形的边沿变得很陡。 施密特电路的结构和工作原理 我们先从模电的角度来分析此电路的工作原理。 此电路是通过公共发射极电阻耦合的两级正反馈放大器。 v1输入为低电平

fcxgfdjy的博客 1万+

Codeforces Round #652 (Div. 2) (补题ing)

A 很简单看是否能被4整除。 B 如果前面都是0,那么直接这段0是不可能消除的,接着遇到第一个1我们就开始从后面往前面找一个到最后一个0,因为不管是101010还是11110000最后都可以消除的只剩下一个0. 代码: 在这里插入代码片 ...

ohhhhh818的博客 361

抖音小程序开发 唤起收银台支付(可以选择支付宝APP支付或微信H5支付)

什么都别说,先看效果: 字节跳动也开放了小程序给商家接入,可以在旗下APP如抖音、今日头条、今日头条极速版等应用中即点即用,基于庞大的数亿用户量为其引流,帮助商家获取用户流量,销售商品,其模式和微信小程序差不多。 1、后台管理地址: https://developer.toutiao.com/ 2、开发文档地址: https://developer.toutiao.com/dev/cn/min...

悟空码字的博客 1万+

Codeforces Round #652 (Div. 2) D题

原题链接:https://codeforces.com/contest/1369/problem/D 思路:树形DP 源码: #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; const int mod = 1e9+7; const int maxn = 2000010; long long dp[maxn][2] = {0}; void init(){ for(long long i = 3;i&lt;m

鼎寒的博客 1317

深入STM32 USB OTG FS:从官方MSC例程到实战双存储设备移植全记录

本文详细解析了STM32 USB OTG FS在双存储设备开发中的实战应用,从协议栈底层机制到SD卡/SPI Flash同步挂载的实现。通过优化SDIO接口和SPI Flash驱动,结合USB MSC类的关键实现,提供了完整的解决方案和性能优化策略,适合嵌入式开发者参考。

weixin_28366475的博客 371

高性能优化的本质

在很早之前,处理器性能的提升一般是通过减小元器件的尺寸,增加元器件的数量,提高主频来实现,这也是摩尔定律所说的,但是由于功耗的影响,主频不能一直增加。后来,由于英伟达的GPU的并行计算的出现,逐渐打破摩尔定律,人们利用多核,SIMD,SIMT来处理大量相同计算的数据,这极大的提高了效率。计算机的算力得到了巨大的提升,但是并行是困难的,对于有数据依赖的程序来说,处理并行是一件及其困难的事,但对于一些简单的数学库的计算,并行的实现相对简单。

发狂的小花的博客 274

Codeforces Round 652 Div2

Codeforces Round 652 Div2 Round652的题感觉就是想到了就容易实现,代码不是很复杂。但就这变成了打的最差的一次。。这里记录一下BCD题。 B题 AccurateLee Lee was cleaning his house for the party when he found a messy string under the carpets. Now he’d like to make it clean accurately and in a stylish way… The

u014156276的博客 538

GraphRAG深度解析:架构设计与实战案例

生成模块结合检索到的图数据和用户输入的查询,生成高质量的文本输出。通过结合图数据库中的知识,模型可以更准确地回答用户的问题,提供更优质的客户服务。通过分析用户的行为和偏好,结合图数据库中的知识,模型可以为用户提供个性化的推荐。:通过图数据库存储和检索结构化的知识,为语言模型提供丰富的背景信息,提升生成内容的质量和准确性。:选择合适的图数据库,如Neo4j、OrientDB等,以支持高效的图数据存储和检索。:利用图数据库的高效检索能力,快速找到与用户查询最相关的图元素,提高系统的响应速度。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1593

Codeforces Round #652 (Div. 2) C. RationalLee(思维,sort)

题目传送 题意: 给你n个整数(一些数可能为负),分给k个人(输入中给出每个人分多少个整数),现在每个人得到的价值为分给自己的整数中的最大值加上最小值。现在问所有人的获得的价值的最大值为多少? 思路: 我们先把n个整数和k个人所分的数量从小到大排个序。 1.现在我们要寻找这k个人中,有没有人只能得到一个整数,如果有的话,那么把最大的整数给他(因为他所能得到的价值是最大值的俩倍,所以最大的整数给他,对总体的价值肯定增长的越快) 2.把所有的只能得到一个数的人分配完了后,我们再排个序,使得剩下的人中分配的整数数

give it a try 458

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Codeforces Round #652 (Div. 2) E - DeadLee (贪心)

题目链接 思路: 把n个食物的需求need求出来。 每次都选择一个 a[i]-need[i] 最大的食物i 如果这个是非负的 就可以,否则必死。。 那么把喜欢的食物包含i的这批人 放在最后 ,无论前面的人怎么放 这些都是合法的。 然后把这批人喜欢的另一个食物的需求减减。 一直执行这个过程,直到m个人都搞完。 所有过程可以用线段树完成(全局最大值查询,单点更新) 最后倒序输出即可。 #include &lt;bits/stdc++.h&gt; using namespace std; typedef long

pubgoso的博客 1149

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = &quot;R. B. Palm&quot;, title = &quot;Prediction as a candidate for learning deep hierarchical models of data&quot;, year = &quot;2012&quot;,}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er&lt;0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free &quot;Bitdeli Badge&quot;)

codeforces-652【思维】

题目链接:点击打开链接 A. Gabriel and Caterpillar time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The 9-th grade s

_Somethingwill 519

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces Round 613(div2) 解题报告

2020.1.12 星期六 昨天上经济课真是刺激,本来没打算打这场div2的,后来看到群里好多人都去了,心里痒痒,正好在路上有了第一题的思路,就交上去了,全然不顾我已经比别人晚了45分钟以及我马上要去上economic of risk的事实,试试就逝世。 上课我习惯性地坐在了第一排,结果忘了我今天还有别的任务,结果电脑打开就开始做题了,后面的三位中国同学很好奇经济课上为什么会有计科学生乱入,纷纷投...

Stagflation的博客 558

CodeForces - 652C Foe Pairs

思路:记录下来每一个数在序列里的位置,然后记录每一个位置向右最远能到达哪个位置#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std; typedef long long ll; const int maxn = 3 * 1e5 + 10; int a[maxn],pos[maxn],mx[maxn]; ...

GYH0730的博客 354

Codeforces Round #652 (Div. 2) F BareLee

#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;queue&gt; #include &lt;algorithm&gt; #include &lt;cmath&gt; #include &lt;vector&gt; #include &lt;map&gt; using namespace std; #define inf 0x7fffffff #define ll long l..

逝者如斯夫,不舍昼夜 6580

Codeforces Round #652 (Div. 2) D. TediousLee (DP+找规律)

链接:https://codeforces.com/contest/1369/problem/D 题解:如图,要注意f[3]!=f[2]+f[1]*2,因为level为3的时候算的是最上边的claw,为6的时候最大的也是算上最上边的claw,因此可以推出level是3的倍数时递推式就是f[i]=f[i-1]+f[i-2]*2+4。 代码: #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const

qq_43679326的博客 274

Codeforces Round #652 (Div. 2)-C. RationalLee

题目链接 题意: 给你n个数,将他分成k组,求每一组的最大值和最小值相加得到的值的总和是多少。 思路: 首先想要总和最大,那么我们要尽可能使最大值最大,最小值尽可能大,我们先将两个数组排序,如果有k数组为1的情况,那么最大最小值相同,所以我们把最大的值放入1的堆中。当需要分的堆大于1时,首先我们要确保最大值为最大的,其次,最小值尽可能大,如果我们放入所有数字的最小值,那么其余的值不论有多小都不会对答案有影响,所以我们要利用这一点,放入一个最大值和最小值之后,把剩下的数从最小开始放入该数组中,使得下一个数组的

ACkingdom的博客 336

(贪心)Codeforces Round #652 (Div. 2) E - DeadLee

这题首先每道菜如果够吃,就让吃它的人放到最后只吃这道菜,那对其他菜来说,就少了一些吃它的人,就又能有菜富裕,这样不断进行,如果每道菜都能在某个阶段富裕,那就alive,然后按照存入的顺序倒序输出,否则dead Be careful: there is 50 points penalty for submission which fails the pretests or resubmission (except failure on the first test, denial ...

天涯沧海的博客 319

codeforces1369D TediousLee

https://codeforces.com/problemset/problem/1369/D 一眼结论,从这棵树从下往上,能取就取,肯定能得到最大值,因为儿子数量更多一些,如果取父节点会影响很多子树。 然后再考虑,i=3,只能取跟节点的1个爪子,i=4的时候,从下往上取,取中间的爪子,根节点不会被取,i=5的时候,也不会取根节点 然后可以发现 对于level i , 由3棵子树+1个根节点形成,其中2棵i-2的树,1棵i-1的树 那么如果i-2和i-1都不取根节点,也就是i的根节点的子节点,那么

binarycopycode 434

Codeforces 652B z-sort(水题)

http://codeforces.com/contest/652/problem/B B. z-sort time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A s

Shyazhut 560

codeforces div2 C题思路训练【C题好难,我好菜】

1017C The Phone Number: 构造数列使得LIS和LDS的和最小,定理已知LIS=L,LDS=n/L的向上取整,根据样例可以得到设置L=根号n,构造方法如样例 截断法构造,不用考虑边界: Show an example ofn=22: "' 19 20 21 22 15 16 17 18 11 12 13 14 7 8 9 10 3 4 5 6 1 2 "' 1 ...

weixin_30551947的博客 298

[codeforces 1369D] TediousLee 树上找规律

Codeforces Round #651 (Div. 2) 参与排名人数14559 总目录详见https://blog.youkuaiyun.com/mrcrack/article/details/103564004 在线测评地址http://codeforces.com/contest/1369/problem/D

mrcrack的博客 858
上一篇: 洛谷P2568 GCD(欧拉线性筛 + 欧拉函数 + 前缀和)
下一篇: 洛谷P2014 选课(树形dp)
tiany7
博客等级 码龄8年 16粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值