网站制作文案,在哪里可以做网站赚钱,凡科送审平台学生不能登录,国外学校网站模板01
津津上初中了。妈妈认为津津应该更加用功学习#xff0c;所以津津除了上学之外#xff0c;还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴#xff0c;而且上得越久就会越不高兴。假设津津…
01
津津上初中了。妈妈认为津津应该更加用功学习所以津津除了上学之外还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴而且上得越久就会越不高兴。假设津津不会因为其它事不高兴并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排看看下周她会不会不高兴如果会的话哪天最不高兴。
输入描述 Input Description
输入包括七行数据分别表示周一到周日的日程安排。每行包括两个小于10的非负整数用空格隔开分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出描述 Output Description
输出包括一行这一行只包含一个数字。如果不会不高兴则输出0如果会则输出最不高兴的是周几用1, 2, 3, 4, 5, 6, 7分别表示周一周二周三周四周五周六周日。如果有两天或两天以上不高兴的程度相当则输出时间最靠前的一天。
样例输入 Sample Input
5 3
6 2
7 2
5 3
5 4
0 4
0 6
样例输出 Sample Output
3
#includestdio.hint main(){int a,b,i,day,max,array[8];char c;for(i1;i7;i){scanf(%d %d,a,b);array[i]ab;}maxarray[0];for(i1;i7;i){if(maxarray[i]){maxarray[i];dayi;}}if(max8)printf(%d,day);else printf(%d,0);}02 日期问题 #include stdio.h
#include stdlib.h
int a0,b0,c0; //全局变量
int run(int x){ //检测当年是否为闰年是闰年返回1不是闰年返回0if(x%40x%100!0)return 1;if(x%4000)return 1;return 0;
}
int check(int i,int j,int k){ //检测三个参数是否符合要求符合返回1不符合返回0ii%100;if(ai bj ck)return 1; //a-b-c 年月日if(ak bj ci)return 1; //a-b-c 日月年if(aj bk ci)return 1; //a-b-c 月日年return 0;
}int main(int argc, char *argv[])
{ int i0,j0,k0;int month[13]{0,31,0,31,30,31,30,31,31,30,31,30,31}; //闰年2月有29号平年2月只有28号scanf(%d/%d/%d,a,b,c);for(i1960;i2059;i){ //年份遍历for(j1;j12;j){ //月份遍历if(run(i)1)month[2]29;else month[2]28;for(k1;kmonth[j];k){ //日遍历if(check(i,j,k)1){printf(%d-%02d-%02d\n,i,j,k);}}}} return 0;
}03 杨辉三角形 输入描述 输入一个整数 N。
输出描述 输出一个整数代表答案。
输入输出样例 示例 1 输入
6输出
13//解题思路
//1、首先通过画图发现杨辉三角对称而题目要求找到数 n 最早出现的位置
//那么我们可以确定n最早出现的位置一定在左半边而且最中间的是该行最大的数
//通过图我们可以发现通过行和列的枚举是不好的看数据1e9也就是十亿
//2.这是个很大的工程因此我们试想可不可以从斜行来观察呢
//下图我们可以观察到第1斜行的1C0,0第二斜行的2C2,1第三斜行的6C4,2,第四斜行的20C6,3…
//也就是说如果我设共 i 斜行那么第 i 斜行的第一个数为C2*ii同时它是该斜行中最小的数字
//那么我们一定可以找到1e9的位置
//3.1e9的位置确定
//显然C32,16 1e9而C34,17 1e9因此我们可以对前16行进行枚举
//4.枚举顺序
//首先对于左半边杨辉三角来说每行最大的数一定出现在该行末尾同时它也是该数最早出现的位置
//因此我们不妨从第16斜行开始枚举只要出现等于 n 的数直接返回位置即可
//对于查找我们可以对每个斜行采用二分的方法查找n
//对于位置我们可以在查找的时候确定n所在行 r不是斜行和所在斜行 k
//然后通过等差公式 r*r1/2 计算它之前数目的个数再加上 k1
//例如n 20 由于推到第一行行号为 0 斜行行号也是 0
//查找过程我们可以确定20在第7行实际返回 r 6 在第 4 斜行 但此时 k 是 3因此 k1
//结果 ans 6*7/2 3 1 25
//5.时间复杂度的计算
//枚举16斜行 -- O16
//二分查找 -- Ologn
//综合起来算法时间复杂度为 O16logn
#includestdio.h
#includestdlib.h
#define ll long long
int n;
int max(int a,int b)
{return ab?a:b;
}
ll C(int a,int b)//计算二项式C(a,b)
{ll res1;int i,j;for(ia,j1;jb;i--,j){resres*i/j;if(resn){return res;//如果大于n已经无意义了因为斜行是递增的 }}return res;
}
int check(int k)
{//二分该斜行找到大于等于该值的第一个数//左边界2k右边界max(n,l)避免右边界小于左边界 int l2*k,rmax(n,l);while(lr){int mid(lr)/2;if(C(mid,k)n) rmid;else lmid1;}if(C(r,k)!n){return 0;}printf(%lld,(ll)(r1)*r/2k1);return 1;
}
int main()
{scanf(%d,n);int i;//从第16斜行枚举 for(i16; ;i--){if(check(i)1){break;}} return 0;
}04 两数之和
题目描述
输入一个整数n输入n个整数存入数组 nums 再输入一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。
输入格式
输入n和n个整数的数组再输入一个整数target
输出格式
输出两个整数表示数组下标
输入样例1
4 2 7 11 15 9
输出样例1
0 1
输入样例2
3 3 2 4 6
输出样例2
1 2
输入样例3
2 3 3 6
输出样例3
0 1
#includestdio.hint main(){int n,i,j;scanf(%d,n);int nums [n];for(int i0;in;i){scanf(%d,nums[i]);}int target;scanf(%d,target);for(int i0;in-1;i){for(int j1;jn;j){if(nums[i]nums[j]target){printf(%d %d,i,j);break;}}}} 05 反转字符串
题目描述
输入一个整数k和字符串从字符串开头算起每计数至 2k 个字符就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。
输入格式
输入整数k和字符串s
输出格式
输入样例1
2 abcdefg
输出样例1
bacdfeg
输入样例2
2 abcd
输出样例2
bacd
#include stdio.h
#include string.h
void reverseString(char *str, int k) {int len strlen(str);int i;for (i 0; i len; i 2 * k) {int left i;int right (i k - 1 len) ? (i k - 1) : (len - 1);while (left right) {char temp str[left];str[left] str[right];str[right] temp;left;right--;}}
}int main() {int k;char str[100];scanf(%d %s, k, str);reverseString(str, k);printf(%s\n, str);return 0;
}
06 受伤的皇后 输入描述 输入的第一行包含一个整数 n。
其中1≤n≤10。
输出描述 输出一个整数表示答案。
输入输出样例 示例 1 输入
4输出
2#include iostream
using namespace std;
int chess[15] {};
int n, cnt 0;
//r是行y是列
bool check(int y, int r) {for (int i 0; i r; i) { //遍历前r行if (chess[i] y) return false; //前面某行上的该列已有棋子else if (abs(i - r) abs(chess[i] - y) abs(i - r) 3) return false; //对角线上已有棋子}return true;
}
void dfs(int r) { //r是行if (r n) {cnt;return;}for (int i 0; i n; i) {if (check(i, r)) {chess[r] i;dfs(r 1);}}
}
int main() {cin n;dfs(0);cout cnt endl;return 0;
}07 谈判 输入输出样例 示例 1 输入
4
9 1 3 5输出
31#include stdio.h
#include stdlib.h
int main()
{int num,temp;int ans 0;scanf(%d,num);int clan[num];for(int i 0;i num;i){scanf(%d,clan[i]);}for(int i 0;i num;i){for(int j i 1;j num;j){if(clan[i] clan[j]){temp clan[i];clan[i] clan[j];clan[j] temp;}}}for(int i num - 1;i 0;i--){if(i) ans clan[i] * (num - i);else ans clan[i] * (num - i - 1);}printf(%d,ans);return 0;
}08 灌溉 输出描述 输出一个整数表示答案。
输入输出样例 示例 1 输入
3 6
2
2 2
3 4
1输出
9#include stdio.h
void disp(int x,int y,int a[x][y])//显示花园情况
{for(int i0;ix;i){for(int j0;jy;j)printf( %d ,a[i][j]);printf(\n\n);}
}
int main()
{int n,m,t,r,c,k,ans0,list_i0;//list_i后面就知道是什么了 scanf(%d %d,n,m);scanf(%d,t);int gd[n][m],waterlist[10000][2]{0}; //waterlist是保存当前有水格子坐标的清单 for(int i0;in;i) //花园初始化 for(int j0;jm;j)gd[i][j]0;//disp(n,m,gd);while(t--){scanf(%d %d,r,c);gd[r-1][c-1]1; //输入水源坐标题目指现实中的坐标要-1 }//disp(n,m,gd);scanf(%d,k);while(k--){for(int i0;in;i){for(int j0;jm;j){if(gd[i][j]1)//遍历整个花园找到当前有水的格子 {waterlist[list_i][0]i;waterlist[list_i][1]j;//将有水格子的坐标保存到waterlist中list_i就是清单的序号 }}}for(int i0;ilist_i;i){ //开始扩散记得判断边界花园以外的地方超过了数组范围 gd[waterlist[i][0]] [waterlist[i][1]]1;gd[waterlist[i][0]] [waterlist[i][1]1](waterlist[i][1]1n1);gd[waterlist[i][0]] [waterlist[i][1]-1](waterlist[i][1]-10);gd[waterlist[i][0]1] [waterlist[i][1]](waterlist[i][0]1m1);gd[waterlist[i][0]-1] [waterlist[i][1]](waterlist[i][0]10);}}//一分钟后k1重新遍历整个花园更新有水格子清单进行第二次扩散以此类推。 //disp(n,m,gd);for(int i0;in;i){for(int j0;jm;j){ansgd[i][j];}} printf(%d,ans);return 0;
}09 翻硬币 输出描述 一个整数表示最小操作步数。
输入输出样例 示例 输入
**********
o****o****输出
5#includeiostream
#includestring.h
using namespace std;
void swap(char x[1005],int i){if(x[i]*){x[i] o;}elsex[i] *;
}
int main()
{char s[1000];char x[1005];cins;cinx;int count 0;int len strlen(x);for(int i0;ilen;i){if(s[i]!x[i]){swap(x,i); swap(x,i1); count ;}}coutcountendl;return 0;
}10 时间加法 输出描述 输出第一行包含一个整数表示结果是几点。
第二行包含一个整数表示结果是几分。
输入输出样例 示例 1 输入
3
20
165输出
6
5#include stdio.h
#include stdlib.h
int main()
{// 请在此输入您的代码int a,b,m,t;scanf(%d\n%d\n%d,a,b,t);ma*60bt;printf(%d\n%d,m/60,m%60);return 0;
}