今天是放假在家打卡学习的第一天。
早上8:30签到打卡。
8:50——12:00学习算法(大数相加,快速幂,部分背包贪心策略,博弈基础之巴什博弈)
14:00——18:00刷题。
晚上归纳总结。

大数相加的思路是以模拟算术的加法进位过程,在这里我们运用了数组来依次存放每一位字符,首先将字符每一位翻转,因为我们是从低位算起,所以需要将低位放在数组头部,在计算过程中也需要用一个临时变量来控制每一位的进位,再循环结束过后还需要对进位的变量判断,如果进位不是1的话还要在后面进位。

len1=strlen(str1);len2=strlen(str2);for(i=0; i<len1; i++)ans1[i]=str1[len1-i-1]-'0';//对字符串进行翻转for(i=0; i<len2; i++)ans2[i]=str2[len2-i-1]-'0';
 for(i=0; i<len1||i<len2; i++){sum[i]=(ans1[i]+ans2[i]+t)%10;//每位剩下的数t=(ans1[i]+ans2[i]+t)/10;//取进位}if(t)//判断是否还有进位sum[i++]=t;//有进位的话还需进位sum[i]='\0';

快速幂是应用在我们平时求取高次方幂的精简版
一般的是对幂进行循环遍历,这样时间复杂度相对而言会高一点为0(N)。
而快速幂的话是以二进制的位权来简化时间复杂度。(将底数放大,将指数缩小)

void main()
{   int a,b;
scanf("%d%d",&a,&b);int ans=1;while(b){if(b&1)//按位运算相当于b%2!=0{ans*=a;}a*=a;b>>=1;//位运算右移相当于除以2}printf("%d",ans);
}

部分背包策略我就结合今天刷题组的一道题来理解,主要是运用贪心策略。看题:
问题 H: Home Work
描述
临近开学了,大家都忙着收拾行李准备返校,但I_Love_C却不为此担心! 因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。
暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。 而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。 如果有5张试卷,其中4张是选择题,最后一张是填空题,很明显做最后一张所花的时间要比前4张长很多。 但如果你只做了选择题,虽然工作量很少,但表面上看起来也已经做了4/5的作业了。 I_Love_C决定就用这样的方法来蒙混过关。
他统计出了做完每一张试卷所需的时间以及它做完后能得到的价值(按上面的原理,选择题越多价值当然就越高咯)。 现在就请你帮他安排一下,用他仅剩的一点时间来做最有价值的作业。

格式
输入格式
测试数据包括多组。 每组测试数据以两个整数M,N(1≤M≤20, 1≤N≤10000)开头,分别表示试卷的数目和I_Love_C剩下的时间。 接下来有M行,每行包括两个整数T,V(1≤T≤N,0<V<10000),分别表示做完这张试卷所需的时间以及做完后能得到的价值! 输入以0 0结束。写试卷的时间可能为0!!!

输出格式
对应每组测试数据输出I_Love_C能获得的最大价值。
保留小数点2位

样例
样例输入 Copy
4 20
4 10
5 22
10 3
1 2
0 0
样例输出 Copy
37.00
提示
float的精度可能不够。 你应该使用double类型。
对平均价值进行降序排序,先取价值高的。代码如下

#include <stdio.h>
#include <string.h>
struct node
{double a[3];};
int main()
{int i,j,n,k;double s,m;struct node arr[1000],t;while(~scanf("%d%lf",&n,&s)){if(n==0&&s==0)break;memset(arr,0,sizeof(arr));//对内存进行重置m=0;for(i=0; i<n; i++){scanf("%lf%lf",&arr[i].a[0],&arr[i].a[1]);if(arr[i].a[0]==0)//题目说过写题可能为0,但因为除数不能为0所以我进行了单独处理arr[i].a[2]=arr[i].a[1];elsearr[i].a[2]=arr[i].a[1]/arr[i].a[0];}for(i=0; i<n-1; i++)//冒泡降序排序,关键字为平均价值for(j=0; j<n-1-i; j++)if(arr[j].a[2]<arr[j+1].a[2]){t=arr[j],arr[j]=arr[j+1],arr[j+1]=t;}i=0;while(s)//对价值进行累加,因为是可以进行部分取的{if(s>=arr[i].a[0]){s-=arr[i].a[0];m+=arr[i].a[1];}else{m+=arr[i].a[2]*s;s=0;break;}i++;}printf("%.2lf\n",m);//保留两位小数}}

在刷题题组中运用了博弈基础——巴什博弈
看题
问题 E: 刷题的兄弟俩
描述
众所周知,lbg和gbl是一对兄弟,他们时常位居刷题榜前列,为了赢得学妹的芳心
他们决定进行一场刷题比赛,他们找来了1000000000000000道题,比赛的规则是
1、一道题只能归一个人所有(这题被gbl过了,lbg就接着往后刷);
2、从第一题开始往后刷;
3、谁先刷完最后一题谁就赢了;
4、只有一台机子,每次只能有一个人上机;
5、一次上机刷超过 m (1<=m<=100) 道题会被系统判定为舞弊;
因为lbg和gbl都很聪明,所以每次上机都不会舞弊,而且所有的题他们都会做。
这时比赛已经进行到了晚上就要断网了,还剩 n (0<n<1000000)道题。
假设lbg先上机,请问谁能获得小学妹的芳心?

格式
输入格式
输入数据首先包含一个正整数T,表示包含T组测试用例,然后是T行数据,每行包含两个正整数n,m,n和m的含义参见上面提到的规则。

输出格式
对于每组测试数据,如果lbg能获得小学妹的芳心,请输出字符串"lbg", 如果gbl能获得小学妹的芳心,请输出字符串"gbl",每个实例的输出占一行。

样例
样例输入 Copy
2
8 10
11 10
样例输出 Copy
lbg
gbl
这道题算是巴什博弈的模板题把,
因为每次做题的数不超过m道,也就是说每个人每次做题数目都在1至m,所以如果题目数2*m>n>=m+1,也就说明先手必输,因为先手只能拿1~m,后手就可以拿剩下的n-(m),必定是在1—m内的,所以后手必赢。同样如果n是m+1的倍数拿必定可以变成m+1.所以我们只需判断如果是m+1的倍数那必定是后手赢。代码如下:

#include <stdio.h>
int main()
{int t,n,m;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);if(n%(m+1)==0)printf("gbl\n");elseprintf("lbg\n");}}

愿每天都能过的充实,加油大气层!!!!!

2020-1-18学习总结相关推荐

  1. 心音数据库_小V云端数据库 | 2020.9.14—2020.9.18

    桂花的芬芳 在雨后空气中弥散开来 似为湿润的情绪 赠予了一丝甜蜜 小V云端数据库 2020.9.14-2020.9.18 资讯情报关键词 健康.示范.安全 V宝体检,助力成长 2020年9月14日上午 ...

  2. 2020李宏毅深度学习hw1

    2020李宏毅深度学习hw1 1.导入包 import sys import pandas as pd import numpy as np 2.加载数据 data = pd.read_csv('tr ...

  3. 我的2020工作与学习总结

    我的2020总结 今天是2020年12月30日,马上就要开始新的一年了,在出差途中简单做个总结.总结我2020这平凡而又充实的一年. 学习和生活方面 回忆起我去年做的总结我的2019,这两年都是收获满 ...

  4. python学习路线-2020年 Python学习路线及学习目标规划 拿走不谢!

    找不到完整的学习路线?小编分享2020年Python学习路线及学习目标规划拿走不谢,Python作为今年来特别受欢迎的编程语言,是AI时代头牌语言AI领域的敲门砖,Python已经入驻小学生教材,将来 ...

  5. 十一、“由专入分易,由分入专难。”(2020.12.18)

    十一."由专入分易,由分入专难."(2020.12.18)

  6. 2020.03.18模拟赛17(第二题)

    2.[GDKOI训练]音乐节拍(mnotes) 题目描述 FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000)种音节组成,编号为1到N,而且一定按照从1到N的顺序进行弹奏, ...

  7. 2020.03.18模拟赛17(第三题)

    3.[GDKOI训练]电视游戏问题(vidgame) 题目描述 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶教授的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是 ...

  8. 计网复习day01 2020.8.18

    计网复习day01 2020.8.18 一些填空题 计算机网络由通信子网和资源子网组成 报文交换网络分为虚电路交换网络和数据报交换网络 OSPF的名字是开放最短路径优先,使用了分布式的链路状态协议,R ...

  9. 2020年新年学习目标

    2020年新年学习目标 1.JVM-SANDBOX 2.java进阶

  10. 2020.02.18 - 修复电脑亮度调节无效的问题

    2020.02.18 - 修复电脑亮度调节无效的问题 昨天开始着手解决笔记本亮度调节无效的问题,问题描述:亮度调节功能消失,使用快捷键亦无法调节,打开移动中心调节仍然无效.经过实际验证,总结如下: 1 ...

最新文章

  1. python图片识别-Python+Opencv识别两张相似图片
  2. win10 mysql 3534_win10 mysql 5.7.13 服务无法启动 3534
  3. UVa 10642 - Can You Solve It?
  4. 利用 Webpack 实现小程序多项目管理
  5. od拦截消息 comboboxonchange_某聊天软件逆向之偷看消息不quot;已读quot;
  6. 管理工作时间的软件有哪些?
  7. Win10 系统通过易升升级后,系统盘空间不足解决办法(个人经历)
  8. EasyPR转qt5-vs2013
  9. Linux下的WPS安装
  10. O2OA办公平台:考勤配置管理手册
  11. hadoop学习笔记之-NFS配置
  12. Manjaro找不到默认键盘布局
  13. Rectangling Panoramic Images via Warping算法要点分析
  14. 无法卸载creative cloud桌面应用程序
  15. 三维地图打造数、实融合底座
  16. 如何更改CSDN博客皮肤
  17. 四步完成离线部署wvs
  18. Python oauth2登录Outlook读取邮件
  19. nRF52832学习记录(十一、TWI总线的应用 SHT21程序移植)
  20. SAP 各大常用模块汇总介绍(四)

热门文章

  1. HbuilderX Node插件[sass]安装失败,可在命令行中使用'npm install'命令进行重新安装
  2. 数据分析必备——统计学入门基础知识
  3. SpringBoot系列(22):Java生成二维码的几种实现方式(基于Spring Boot)
  4. 企业大数据平台下数仓建设思路
  5. Mop研发团队:网络时代的技术偏执狂(全文)
  6. Caffe 深度学习框架上手教程
  7. 从零开始的企业级Java漏洞实战丨联合漏洞银行免费公开课
  8. 什么是Windows API
  9. 一招解决由于找不到vcomp100.dll,无法继续执行代码
  10. 数值方法求π和π的x次方