win2008 iis7发布网站网站被黑能黑多长时间
- 作者: 多梦笔记
- 时间: 2026年02月18日 09:54
当前位置: 首页 > news >正文
win2008 iis7发布网站,网站被黑能黑多长时间,收款网站怎么建设,入侵织梦网站后台789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组#xff0c;以及 q q q 个查询。 对于每个查询#xff0c;返回一个元素 k k k 的起始位置和终止位置#xff08;位置从 0 0 0 开始计数#xff09;。 如果数组中不存在该元素#xff0c;则返…789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组以及 q q q 个查询。 对于每个查询返回一个元素 k k k 的起始位置和终止位置位置从 0 0 0 开始计数。 如果数组中不存在该元素则返回 − 1 − 1 -1 -1 −1−1。 输入格式 第一行包含整数 n n n 和 q q q表示数组长度和询问个数。第二行包含 n n n 个整数均在 1 ∼ 10000 1\sim10000 1∼10000 范围内表示完整数组。接下来 q q q 行每行包含一个整数 k k k表示一个询问元素。 输出格式 共 q q q 行每行包含两个整数表示所求元素的起始位置和终止位置。 如果数组中不存在该元素则返回 − 1 − 1 -1 -1 −1−1。 数据范围 1 ≤ n ≤ 100000 1\leq n\leq100000 1≤n≤100000 1 ≤ q ≤ 10000 1\leq q\leq10000 1≤q≤10000 1 ≤ k ≤ 10000 1\leq k\leq10000 1≤k≤10000 输入样例 6 3 1 2 2 3 3 4 3 4 5输出样例 3 4 5 5 -1 -1题目解释 首先面对2分的问题我们要先找到作用的区间。本道题目的区间为左区间为0右区间为N-1。随后我们需要找到一个可以用来划分区间的条件。在这里我们让mid值大于等于X从左向右得到满足条件的最后一个值从而得到大于或等于S值的区间的左端点。随后我们在此基础之上再次进行二分L值即为刚才所得的左端点R值为原先的N-1。随后我们根据mid的值小于等于X从左向右得到满足条件的最后一个点从而得到结果 代码 #includeiostream #includecstdio #includecstring #includealgorithm using namespace std;const int N1e510; int n,q,a[N];int main(){cinnq;for(int i0;in;i) scanf(%d,a[i]);//输入while(q–){int x;cinx;int l0,rn-1;while(lr){int midlr1;if(a[mid]x) rmid;//从右边向左得到满足条件的最后一个else lmid1;}//得到大于或等于x值的区间的左端点if(a[l]x){coutl ;rn-1;//回复现场while(lr){//在之前判断的基础之上再进行计算减少了次数int midlr11;if(a[mid]x) lmid;else rmid-1;}coutrendl;}else cout-1 -1endl;}return 0; }95. 费解的开关 游戏规则 灯的布局有25盏灯排成一个5×5的方形每盏灯都有一个开关游戏者可改变其状态。操作及连锁反应每一步游戏者改变某一个灯的状态与之上下左右相邻的灯也要相应地改变状态。我们用数字1表示一盏开着的灯用数字0表示关着的灯。例如对于状态 10111 01101 10111 10000 11011改变最左上角的灯的状态后将变成 01111 11101 11011 10000 11011再改变正中间的灯后状态将变成 01111 11001 11001 10100 11011任务要求 输入格式 第一行输入正整数n代表数据中共有n个待解决的游戏初始状态。以下若干行数据分为n组每组数据有5行每行5个字符。每组数据描述了一个游戏的初始状态。各组数据间用一个空行分隔。 输出格式 一共输出n行数据每行有一个小于等于6的整数它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。对于某一个游戏初始状态若6步以内无法使所有灯变亮则输出-1。 数据范围0 n ≤ 500 输入输出样例 输入样例 3 00111 01011 10001 11010 1110011101 11101 11110 11111 1111101111 11111 11111 11111 11111输出样例 3 2 -1题目思路 首先要明白每一行除去第一行的灯的亮灭可以从下一行的灯的亮灭来决定针对第一行每一盏灯都可以选择是否按下开关所以这是一个指数型枚举的问题指数型枚举是指从n个不同元素中不考虑元素之间的顺序将所有可能的子集都列举出来的过程。随后第一行每个开关都可以选择是否打开所以对于每一个问题我们是有2^532种情况对于每一种情况我们的第一行都是不同的开关选择对应着唯一的下面行除去最后一行的开关选择到了最后一行如果依然存在没有被点亮的灯那么则认为这个题目无法被满足 代码1 #includeiostream #includecstdio #includecstring #includealgorithmusing namespace std; const int N6; int g[N][N],backup[N][N];//由于每一个题目都对应着32种情况32刚好满足32个不同的5位二进制数字所以我们要提前做一个备份int dx[5]{0,0,-1,0,1},dy[5]{0,1,0,-1,0};// 翻转(x, y)位置的灯及其周围四个灯的状态 void turn(int x, int y) {for (int i 0; i 5; i) {int nx x dx[i], ny y dy[i];if (nx 0 nx 5 ny 0 ny 5) {g[nx][ny] ^ 1; // 使用异或操作来翻转状态}} }int main(){int n;//一种有n种需要被解决的问题cinn;while(n–){for(int i0;i5;i){for(int j0;j5;j){scanf(%1d,g[i][j]);//特别注意这个地方是1d因为题目所给数字是链接在一起的所以需要用1d来用来区分当然这个地方也可以使用char数组}}//完成输入//接下来进行第一行的开关对于这一个待解决的问题有32种情况那么我们在最开始先设置一个答案值为6将这个值与每一种情况所得结果进行对比取最小值int ans7;for(int i0;i32;i){//按照5位二进制数进行每一种情况//情况一//首先完成备份int res0;//创建一个临时存储的变量,该变量为局部变量必须赋值memcpy(backup,g,sizeof g);for(int j0;j5;j){if((ij)11){turn(0,4-j);res;}//如果这一位的结果为1那么就要进行开关的转换}//完成第一行开关for(int h0;h4;h){for(int l0;l5;l){if(g[h][l]0){turn(h1,l);res;} }//遍历除去最后一行的所有如果发现为0则在下一行的该位置打开开关}//接下来要对结果进行检验如果最后一行依然存在为0的情况那么就证明无法满足题目条件bool flagtrue;for(int l0;l5;l){if(g[4][l]0) flagfalse;}if(flag) ansmin(ans,res);//如果可以就把两个值中的最小值赋给ans//最后要回复现场memcpy(g,backup,sizeof g);}//完成了所有32种情况的遍历if(ans6) cout-1endl;else coutansendl;}return 0; } 代码2区别在于读取数据的方式不同同时也是y总代码 #include cstdio #include cstring #include iostream #include algorithmusing namespace std;const int N 6;char g[N][N], backup[N][N]; int dx[5] {-1, 0, 1, 0, 0}, dy[5] {0, 1, 0, -1, 0};void turn(int x, int y) {for (int i 0; i 5; i ){int a x dx[i], b y dy[i];if (a 0 || a 5 || b 0 || b 5) continue; // 在边界外直接忽略即可g[a][b] ^ 1;} }int main() {int T;cin T;while (T – ){for (int i 0; i 5; i ) cin g[i];int res 10;for (int op 0; op 32; op ){memcpy(backup, g, sizeof g);int step 0;for (int i 0; i 5; i )if (op i 1){step ;turn(0, i);}for (int i 0; i 4; i )for (int j 0; j 5; j )if (g[i][j] 0){step ;turn(i 1, j);}bool dark false;for (int i 0; i 5; i )if (g[4][i] 0){dark true;break;}if (!dark) res min(res, step);memcpy(g, backup, sizeof g);}if (res 6) res -1;cout res endl;}return 0; }
- 翻硬币 问题描述 小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面用 o 表示反面是小写字母不是零。 例如可能情形是oo*oooo。如果同时翻转左边的两个硬币则变为oooo***oooo。 现在小明的问题是如果已知了初始状态和要达到的目标状态每次只能同时翻转相邻的两个硬币那么对特定的局面最少要翻动多少次呢 我们约定把翻动相邻的两个硬币叫做一步操作。 输入格式 两行等长的字符串分别表示初始状态和要达到的目标状态。 输出格式 一个整数表示最小操作步数。 数据范围 输入字符串的长度均不超过 100。数据保证答案一定有解。 输入输出样例 输入样例 1 ********** o*o*输出样例 1 5输入样例 2 *ooo** *o*oo**输出样例 2 1题目思路 和上一个题目费解的开关类似都是改变一个的值同时会改动其他的值 是费解的开关的简易版 题目代码 #include iostream #include cstdio #include cstring #include algorithmusing namespace std;const int N110; char o[N],a[N]; int ans;void turn(int x){if(o[x]) o[x]o;else o[x]*; }int main(){cinoa;//接受起始状态和目标状态int lenstrlen(o);for(int i0;ilen-1;i){if(o[i]a[i]) continue;turn(i),turn(i1);ans;}if(a[len-1]o[len-1]) coutans;return 0; }
- 上一篇: win2003网站建设婚恋网站
- 下一篇: win2012 iis配置网站管家婆软件多少钱一年
相关文章
-
win2003网站建设婚恋网站
win2003网站建设婚恋网站
- 站长
- 2026年02月18日
-
win2003建设网站58同城建设网站
win2003建设网站58同城建设网站
- 站长
- 2026年02月18日
-
win10做网站网站开发数据库课程设计
win10做网站网站开发数据库课程设计
- 站长
- 2026年02月18日
-
win2012 iis配置网站管家婆软件多少钱一年
win2012 iis配置网站管家婆软件多少钱一年
- 站长
- 2026年02月18日
-
windows 2008 搭建网站网站做APP麻烦吗
windows 2008 搭建网站网站做APP麻烦吗
- 站长
- 2026年02月18日
-
windows 网站开发注册公司需要什么条件太原
windows 网站开发注册公司需要什么条件太原
- 站长
- 2026年02月18日
