CSUST 4019 听党指挥(思维+模拟)】的更多相关文章

题目链接 题目大意 给你一个长度为n的序列(n为偶数),序列为[1,2,3,....n],操作m次,进行m次操作后输出这个序列 有三种操作 1:每次将最左边的元素移到最右边,重复x次 2:每次将最右边的元素移动到最左边,重复x次 3:交换[1,2] [3,4] ...[n-1,n]的元素 题目思路 这个最开始我一直以为是模拟当然最后也是模拟,不过是巧妙的模拟 这个题目的关键就是,你要把这个序列分为一个奇数序列和一个偶数序列.你会发现这两个序列内部的元素永远不会变化而且如果把每一个序列的元素他们单…
最近我要在公司的一个study group负责AWS的AutoScaling功能的介绍.AWS可以根据instance(虚拟机)的CPU使用量进行scaling. 为了做demo,于是就有这样一个需求:让instance上的CPU听我指挥,当然简单的方法就是写一个死循环,让CPU 100%.但如果make things more interesting,希望实现CPU在某个范围内变化又要怎么做哩? 之前看过,邹欣大神的书<编程之美>,其中第一个问题就是“让CPU占有率曲线听你指挥”,里面提到了…
让CPU占用率曲线听你指挥 写一个程序,让用于来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: CPU的占用率固定在50%,为一条直线: CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~100): CPU的占用率状态是一个正弦曲线. [解法一] 简单的解法 一个空的for循环for(int i=0;i<n;i++); 写成汇编代码后进行分析: loop: mov dx i ;将i置入dx寄…
编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器) [版权声明]转载请注明出处 http://www.cnblogs.com/TenosDoIt/p/3242910.html  [目录] 不考虑其他进程,cpu画正弦曲线 获取总体cpu利用率 获取多核处理器单个cpu利用率 考虑其他进程,cpu画正弦曲线 下面的程序针对多核处理器,可以设置让任何一个cpu显示相应的曲线(本文以正弦曲线为例) 代码编译环境:windows 7 64位 酷睿 i5 处理器,vs2010. 可以修改CpuSi…
昨天在bbs上淘到了这本编程之美.顺手刷了第一章,很有意思.第一章的要求是要控制CPU曲线,绘制出对应的形状. 拿到这个问题,我的第一反应是, 是不是有这么一个API,能在任务管理器上的对应区域直接绘制图形呢? 然后就去查找API, 可惜搜索能力不行,最终还是没有找到. 然后看书上的解释, 太棒了. 解决这道题目的核心是. CPU占用率的概念,应该是指 CPU忙的时间与总时间的比,他是一个平均值的概念.也就是说.通过控制CPU忙闲时间的比值,我们能够大致控制CPU的占用率. 通过这个思想能够 控…
ACM思维题训练集合 A new Berland businessman Vitaly is going to open a household appliances' store. All he's got to do now is to hire the staff. The store will work seven days a week, but not around the clock. Every day at least k people must work in the sto…
Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true silver dollars; one coin is counterfeit even though its color and size make it indistinguishable from the real silver dollars. The counterfeit coin has a diff…
C. Okabe and Boxes 这个题目是一个有点思维的模拟,当时没有想到, 思维就是这个栈的排序这里,因为每次直接排序肯定会t的,所以不可以这么写,那怎么表示排序呢? 就是直接把栈清空,如果栈顶就是我们需要的这个值,那就把这个值直接pop, 但是如果不是呢,就可以直接清空这个栈表示排序,如果栈已经是空的了,说明之前排过序了. 如果不是那就清空(排序),这个有点难想. #include <cstdio> #include <cstring> #include <cstd…
传送门 https://codeforces.com/contest/1496/problem/B 题目 Example input 5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 3 2 0 1 2 3 2 1 2 3 output 4 4 3 5 3 Note In the first test case, S={0,1,3,4}S={0,1,3,4}, a=mex(S)=2a=mex⁡(S)=2, b=max(S)=4b=max(S)=4, ⌈a+b2⌉=3⌈a+b2⌉…
题意:博弈题面  给出一个数字序列 (>=11)  有两个人任意删除数字 直到 数字只剩下11位 如果删除后的数字串开头是8那么就是第一个赢 否则就是第二个人赢 第一个人先手  数字序列一定是奇数长度 思路: 首先计算一共走多少步 第二个人想赢只有以下两种方法 想法1:如果第二个人能把8都删掉 那么第二个人肯定赢 想法2: 如果删不掉 那么第二个人肯定从前到后尽可能得删掉8 这样使得第一个人的步数不足删除从前到后 步数+1那个8 的其他字符 否则就是第一人赢,直接模拟即可 (比赛的时候一直WA…
C. Zebras time limit per test memory limit per test 512 megabytes input standard input output standard output Oleg writes down the history of the days he lived. For each day he decides if it was good or bad. Oleg calls a non-empty sequence of days a …
题意:给定一个2*n的矩形方格,每个格子有一个权值,从(0,0)开始出发,要求遍历完整个网格(不能重复走一个格子),求最大权值和,(权值和是按照step*w累加,step步数从0开始). 转载: 题解:思维题,如果正向考虑的话很容易把自己绕晕,我们需要反过来想,你会发现其实对于一个2*N的矩阵,你一共只有N个终点(如下图1),如果在认真推敲,你会发现对于这n个终点,从起点到终点的路线都是很有规律的,只有下图2和3两种情况)那么问题就简单了,只需要考虑各种前缀的预处理,之后直接O(n)判断这N个终…
http://codeforces.com/problemset/problem/758/D 题意:给出一个进制数n,还有一个数k表示在n进制下的值,求将这个数转为十进制最小可以是多少. 思路:模拟着做,有点像two-pointer的做法.正着扫这个字符串,如果找到一个符合题意的即比n小的数,那么这个数是合法的,可以加上,接下来下标就移动到扫到的位置-1.主要难点我觉得在于0的时候的情况,如果当前的下标指的位置是0的话,无疑这个0是对当前的数是没有贡献的,那么这一位0应该不算上去,指针应该向后找…
http://codeforces.com/problemset/problem/758/C 题意:教室里有n列m排,老师上课点名从第一列第一排开始往后点,直到点到第一列第m排,就从第二列第一排开始点,当点完第n列的名之后,接着点第n-1列的名.以此类推,就是从列上来看的话:1,2,3,4,……,n,n-1,n-2,……,1 ,2,…….这样的顺序点名.老师上课总共点k次名,问该课堂最多可以点同一个同学多少次,最少可以点同一个同学多少次,点了位置为(x,y)的同学多少次名. 思路:一遇到这种题目…
题意 : 给出 N 表示有标号 1~N 的 N 个数,然后从下标 1 开始将这 N 个数每隔一位放置一个,直到 N 个数被安排完,现在有一个操作就是每次将数列中最右边的数向离其左边最近的空缺处填上,一直这样子填,直到下标 1~N 被填满,然后现在给出 Q 个询问,每个询问给出一个 X ,你需要回答下标为 X 的位置填放了什么数? 分析 :   初始状态每个数都处于奇数位,且可以根据位置下标得到具体的数是什么,即 num = (pos>>1)  + 1 观察到当最后填充操作完成时,每个奇数位置的…
题意 : 给出一颗无限层的满二叉树,然后每个值为 X (根的 X 等于 1 ) 左孩子的值是 2*X,右孩子的值是 2*X+1 ,现在有两种操作,(1, x,k) 表示将 x 所在层的所有节点整体向右循环地移动 k 个单位.(2,x,k)表示将 x 所在的层的所有节点及其子树向右循环地移动 k 个单位.(3,x)输出从 x 到根的路径 分析 : 第一个操作不难进行模拟 只要给每个层记录其偏移量,最后查询的时候依据偏移量来输出具体的值即可 关键是第二个操作 仔细一想,会发现一个规律 如果第一层移动…
题意: 有口井,往里扔盘子,最多扔多少个 n<=5e5, 1s 思路: 如果比较高的地方井口比较小,那么下面的再大也没有用,只需要维护一个单调减的数组然后O(n+m)模拟即可 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<string> #include<stack…
题意:给你两个字符串\(s\)和\(t\),保证\(t\)的字典序大于\(s\),求他们字典序中间的字符串. 题解:我们假设题目给的不是字符串,而是两个10禁止的正整数,那么输出他们之间的数只要把他两加起来除\(2\)就行了,那么对于字符串又为何不可呢?我们可以将每个字母看成\(26\)进制的数,像高精度那样模拟加法运算的过程,然后再模拟除\(2\)的过程即可. 代码: int k; string s,t; int c[N]; int d[N]; int main() { ios::sync_w…
[本文链接] http://www.cnblogs.com/hellogiser/p/cpu-manager.html [题目] 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: 1.    CPU的占用率固定在50%,为一条直线: 2.    CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~ 100): 3.    CPU的占用率状态是一个正弦曲线. [分析] 如果不考…
听到有人说让要写一个程序,让用户来决定Windows任务管理器的CPU占用率. 觉得很好奇.但第一个想法就是写个死循环.哈哈.不知道具体的占用率是多少,但至少能保证在程序运行时,CPU的占用率终会稳定在一个值上(可能是100呢). 在<编程之美>上看到了这个,就顺手记下来吧. 原题是这样的: 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: 1.CPU的占用率固定在50&,为一条直线…
A. Div. 64 time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Top-model Izabella participates in the competition. She wants to impress judges and show her mathematical skills. Her problem is f…
使用GetTickCount()和Sleep(): Code#include <stdio.h> #include <unistd.h> #include <time.h> unsigned long GetTickCount() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC,&ts); //LOCK_REALTIME, CLOCK_MONOTONIC return (ts.tv_sec*1000 + t…
[目录] 不考虑其他进程,cpu画正弦曲线 获取总体cpu利用率 获取多核处理器单个cpu利用率 考虑其他进程,cpu画正弦曲线 下面的程序针对多核处理器,可以设置让任何一个cpu显示相应的曲线(本文以正弦曲线为例) 代码编译环境:windows 7 64位 酷睿 i5 处理器,vs2010. 可以修改CpuSin函数的计算 busySpan 和 idleSpan的部分以显示不同的曲线. 下面的代码没有考虑cpu中其他进程的占用情况,这种情况详见第二部分 #include <windows.h>…
Description Allen wants to enter a fan zone(球迷区) that occupies a round square and has nn entrances. There already is a queue of aiai people in front of the ii-th entrance. Each entrance allows one person from its queue to enter the fan zone in one mi…
Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T"). 现在有m个询问,每个询问是询问有没有一个连续的子序列,满足其和为q. Input 第一行n,m (1<=n,m<=1000000) 第二行这个序列,起始编号为1,终止编号为n 下面每行一个询问q,询问有没有一个连续的子序列,满足其和为q (1<=q<=2000000) Output 对于每个询问,输出一行,如果有,输出这个序…
洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{X+1} +-+ A_Y<0,1<X<=Y<n,\)令\(S=A_X +A_{X+1} +-+ A_Y\),对于\(A_{X-1}\)和\(A_{Y+1}\)分别加上S,\(A_X\)和\(A_Y\)分别减去S(如果X=Y就减两次).问最少几次这样的操作使得最终数列是完美的. 输入输出…
You are given two positive integer numbers a and b. Permute (change order) of the digits of a to construct maximal number not exceeding b. No number in input and/or output can start with the digit 0. It is allowed to leave a as it is. Input The first…
题意 给定$n$个数,重复拼接$m$次,相邻$k$个重复的可消除,问最后序列中有多少个数 首先可以发现当$k>=n$时,如果要使$n$个数可以被消除,那么$n$个数必须一样,否则$n$个数不能被消除 当$k<n$时,首先对序列能够消除的消除,用栈记录每个数和这个数的相同的相邻个数$f$,将序列压缩,考虑一次拼接,记$L$为第二个序列的开始元素,$R$为第一个序列的最后一个元素,如果$L!=R$那么所有序列将不能压缩,如果$L==R,f_L+f_R!=k$,那么这两个序列拼接之后会合并成一个不可…
A. Vladik and Courtesy time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output At regular competition Vladik and Valera won a and b candies respectively. Vladik offered 1 his candy to Valera. Afte…
题意: 网格图选中三个格,让你选中一些格子把这三个格子连起来,使得选中的格子总数最小.最后输出方案 网格范围为1000 思路: 首先两点间连起来最少需要的格子为他们的曼哈顿距离 然后连接方案一定是曼哈顿距离最短的两个点先连上,然后第三个点再接过去 然后题目就是求第三个点接到的那个点pos,答案就是path(a,pos)+path(b,pos)+path(c,pos) 求pos有两种方法 方法一:O(n2) 1e6枚举pos求最短即可,也能过 方法二:O(n) 首先第三个点一定在前两个点组成的矩形…