摘要: 很简单的算法,现在用的是循环的形式的。注意中间变量设置成x+(y x)/2(紫书上说为了确保靠近区间起点)左边变大设置成x=t+1;右边变小设置成y=t; 代码(基本思路,可以随意转换实现历程) 阅读全文
posted @ 2018-10-13 22:51 baccano! 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 模拟题 开一个容器进行模拟即可,注意容器设置初始大小不然容易re。设置两个指针l,r。把容器当作桶,每一个桶都有一个编号表示位置,左边进入那么就是编号为l,右边一样。然后l 或者r++,l=r=0的初始值,第一个元素为0,然后同时l ,r++ 代码(cf上题解的算法) include using n 阅读全文
posted @ 2018-10-13 13:44 baccano! 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 贪心题 策略 在最左边设置一个array 0,每一次从右往左,如果有heater的话就寻找heater左边界是不是小于等于目前的上一个heater的右边界,如果没有一个这样的,那么就直接输出 1 代码(cf的题解的算法) include using namespace std; int a[1100 阅读全文
posted @ 2018-10-13 13:39 baccano! 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 数学题。用右边界以内的区间内的灯减去左边界以内区间内的灯,并且如果左边界正好有灯再减去一即可 我的代码 include using namespace std; main() { int n; cin n; while(n ) { int ll,v,l,r; int num=0;int sum=0; 阅读全文
posted @ 2018-10-13 13:33 baccano! 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 转载自(https://www.cnblogs.com/lca1826/p/6748372.html) 由于是二进制,很自然地想到用位运算这个强大的工具: & 和 ,&运算通常用于二进制取位操作,例如一个数 & 1 的结果就是取二进制的最末位。还可以判断奇偶x&1==0为偶,x&1==1为奇。 运算 阅读全文
posted @ 2018-10-12 21:29 baccano! 阅读(173) 评论(0) 推荐(0) 编辑
摘要: ``` include using namespace std; double trans(string a) { stringstream ss; ss t; return t; } double k[250]; main() { int n; cin n; k['O']=16.00;k['N'] 阅读全文
posted @ 2018-10-12 20:33 baccano! 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 生成方式 总共有两种算法,第一种就是用自带的srand(time(0));和rand()即可,如果需要那么使用余数即可。rand()%5+1;这个就表示的1 5的随机数。实际上rand()产生的随机数是从1到INT_MAX的。(rand()%6)+5;表示的就是5 10(闭区间)的随机数。 代码 w 阅读全文
posted @ 2018-10-12 12:41 baccano! 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 题目大意 输入有三种颜色判断两个骰子是否相同 思路(借鉴) ①先用string输入那12个字符,然后for出两个骰子各自的字符串 ②这里用的算法是先找出第一个的三个面与第二个的六个面去比较,如果找到相同的面并且他们的对面相等那么继续寻找,直到三个面都能找到相对立的面 ③如果有一个面没有找到相等的面或 阅读全文
posted @ 2018-10-11 22:06 baccano! 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 十分的简单。。。感觉比网上的那些一堆要简单一些吧。 我的代码 阅读全文
posted @ 2018-10-10 23:23 baccano! 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 简介(直接复制别人的) 基数排序又称为“桶子法”,从低位开始将待排序的数按照这一位的值放到相应的编号为0~9的桶中。等到低位排完得到一个子序列,再将这个序列按照次低位的大小进入相应的桶中,一直排到最高位为止,数组排序完成。 我自己的理解步骤 ①先把这一堆数的最大位数找出来。 ②找出最大的位数之后,设 阅读全文
posted @ 2018-10-10 12:40 baccano! 阅读(313) 评论(0) 推荐(0) 编辑