中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

淘寶做個(gè)網(wǎng)站多少錢seo概念

淘寶做個(gè)網(wǎng)站多少錢,seo概念,ru域名注冊(cè),php網(wǎng)站開發(fā)日記好累,學(xué)習(xí)令我快樂 一、小魚比可愛 題目鏈接:https://www.luogu.com.cn/problem/P1428 題目描述 人比人,氣死人;魚比魚,難死魚。小魚最近參加了一個(gè)“比可愛”比賽,比的是每只魚的可愛程度。參賽的魚被從…

好累,學(xué)習(xí)令我快樂


一、小魚比可愛

題目鏈接:https://www.luogu.com.cn/problem/P1428

題目描述

人比人,氣死人;魚比魚,難死魚。小魚最近參加了一個(gè)“比可愛”比賽,比的是每只魚的可愛程度。參賽的魚被從左到右排成一排,頭都朝向左邊,然后每只魚會(huì)得到一個(gè)整數(shù)數(shù)值,表示這只魚的可愛程度,很顯然整數(shù)越大,表示這只魚越可愛,而且任意兩只魚的可愛程度可能一樣。由于所有的魚頭都朝向左邊,所以每只魚只能看見在它左邊的魚的可愛程度,它們心里都在計(jì)算,在自己的眼力范圍內(nèi)有多少只魚不如自己可愛呢。請(qǐng)你幫這些可愛但是魚腦不夠用的小魚們計(jì)算一下。

輸入格式

第一行輸入一個(gè)正整數(shù) n n n,表示魚的數(shù)目。

第二行內(nèi)輸入 n n n 個(gè)正整數(shù),用空格間隔,依次表示從左到右每只小魚的可愛程度 a i a_i ai?

輸出格式

一行,輸出 n n n 個(gè)整數(shù),用空格間隔,依次表示每只小魚眼中有多少只魚不如自己可愛。

樣例 #1

樣例輸入 #1

6
4 3 0 5 1 2

樣例輸出 #1

0 0 0 3 1 2

提示

對(duì)于 100 % 100\% 100% 的數(shù)據(jù), 1 ≤ n ≤ 100 1 \leq n\leq 100 1n100 0 ≤ a i ≤ 10 0 \leq a_i \leq 10 0ai?10

代碼(python)

n = int(input())num = list(map(int, input().split(" ")))nums = []
for i in range(0, n):x = 0# print("i", i)for j in range(0, i):if num[i] > num[j]:x += 1print(x, end=" ")

代碼(C)

#include <stdio.h>
#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {int n;while(scanf("%d",&n)!=EOF){int NUM[n];int i, j;for(i = 0;i < n;i++){scanf("%d",&NUM[i]);}for(j = 0;j < n;j++){int sum = 0;for(i = 0;i < j;i++){if(NUM[j]>NUM[i]){sum++;}}printf("%d ",sum);}} return 0;
}

二、小魚的數(shù)字游戲

題目鏈接:https://www.luogu.com.cn/problem/P1427

題目描述

小魚最近被要求參加一個(gè)數(shù)字游戲,要求它把看到的一串?dāng)?shù)字 a i a_i ai?(長(zhǎng)度不一定,以 0 0 0 結(jié)束),記住了然后反著念出來(表示結(jié)束的數(shù)字 0 0 0 就不要念出來了)。這對(duì)小魚的那點(diǎn)記憶力來說實(shí)在是太難了,你也不想想小魚的整個(gè)腦袋才多大,其中一部分還是好吃的肉!所以請(qǐng)你幫小魚編程解決這個(gè)問題。

輸入格式

一行內(nèi)輸入一串整數(shù),以 0 0 0 結(jié)束,以空格間隔。

輸出格式

一行內(nèi)倒著輸出這一串整數(shù),以空格間隔。

樣例 #1

樣例輸入 #1

3 65 23 5 34 1 30 0

樣例輸出 #1

30 1 34 5 23 65 3

提示

數(shù)據(jù)規(guī)模與約定

對(duì)于 100 % 100\% 100% 的數(shù)據(jù),保證 0 ≤ a i ≤ 2 31 ? 1 0 \leq a_i \leq 2^{31} - 1 0ai?231?1,數(shù)字個(gè)數(shù)不超過 100 100 100。

代碼(python)


num = list(map(int, input().split(" ")))
n = len(num)for i in range(0, n-1):print(num[n-2-i],end=" ")

代碼(C)

#include<stdio.h>
int main(){int i,a[101];for(i=0;;i++){scanf("%d",&a[i]);if(a[i]==0)break;}int count=i;for(i=count-1;i>=0;i--)printf("%d ",a[i]);
}

三、【深基5.例3】冰雹猜想

題目鏈接:https://www.luogu.com.cn/problem/P5727

題目描述

給出一個(gè)正整數(shù) n n n,然后對(duì)這個(gè)數(shù)字一直進(jìn)行下面的操作:如果這個(gè)數(shù)字是奇數(shù),那么將其乘 3 3 3 再加 1 1 1,否則除以 2 2 2。經(jīng)過若干次循環(huán)后,最終都會(huì)回到 1 1 1。經(jīng)過驗(yàn)證很大的數(shù)字( 7 × 1 0 11 7\times10^{11} 7×1011)都可以按照這樣的方式比變成 1 1 1,所以被稱為“冰雹猜想”。例如當(dāng) n n n 20 20 20,變化的過程是 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 20\to 10\to 5\to 16\to 8\to 4\to 2\to 1 20105168421

根據(jù)給定的數(shù)字,驗(yàn)證這個(gè)猜想,并從最后的 1 1 1 開始,倒序輸出整個(gè)變化序列。

輸入格式

輸入一個(gè)正整數(shù) n n n

輸出格式

輸出若干個(gè)由空格隔開的正整數(shù),表示從最后的 1 1 1 開始倒序的變化數(shù)列。

樣例 #1

樣例輸入 #1

20

樣例輸出 #1

1 2 4 8 16 5 10 20

提示

數(shù)據(jù)保證, 1 ≤ n ≤ 100 1 \le n\le 100 1n100。

代碼(python)

n = int(input())i = 1
num = {0: n}
while n != 1:if n % 2 == 0:n = n / 2num[i] = ni += 1else:n = n * 3 + 1num[i] = ni += 1for j in range(0, i):print(int(num[i-1-j]), end=" ")

代碼(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{	int n;scanf("%d",&n);int num[100000];int i = 0; int m = n;while(m != 1){if(m % 2 ==0){m = m/2;num[i] = m;i++;}else{m = m*3 + 1;num[i] = m;i++;}}for(int j = i - 1;j >= 0;j--){printf("%d ",num[j]);}printf("%d\n",n);return 0;	
} 

四、[NOIP2005 普及組] 校門外的樹

題目鏈接:https://www.luogu.com.cn/problem/P1047

題目描述

某校大門外長(zhǎng)度為 l l l 的馬路上有一排樹,每?jī)煽孟噜彽臉渲g的間隔都是 1 1 1 米。我們可以把馬路看成一個(gè)數(shù)軸,馬路的一端在數(shù)軸 0 0 0 的位置,另一端在 l l l 的位置;數(shù)軸上的每個(gè)整數(shù)點(diǎn),即 0 , 1 , 2 , … , l 0,1,2,\dots,l 0,1,2,,l,都種有一棵樹。

由于馬路上有一些區(qū)域要用來建地鐵。這些區(qū)域用它們?cè)跀?shù)軸上的起始點(diǎn)和終止點(diǎn)表示。已知任一區(qū)域的起始點(diǎn)和終止點(diǎn)的坐標(biāo)都是整數(shù),區(qū)域之間可能有重合的部分?,F(xiàn)在要把這些區(qū)域中的樹(包括區(qū)域端點(diǎn)處的兩棵樹)移走。你的任務(wù)是計(jì)算將這些樹都移走后,馬路上還有多少棵樹。

輸入格式

第一行有兩個(gè)整數(shù),分別表示馬路的長(zhǎng)度 l l l 和區(qū)域的數(shù)目 m m m

接下來 m m m 行,每行兩個(gè)整數(shù) u , v u, v u,v,表示一個(gè)區(qū)域的起始點(diǎn)和終止點(diǎn)的坐標(biāo)。

輸出格式

輸出一行一個(gè)整數(shù),表示將這些樹都移走后,馬路上剩余的樹木數(shù)量。

樣例 #1

樣例輸入 #1

500 3
150 300
100 200
470 471

樣例輸出 #1

298

提示

【數(shù)據(jù)范圍】

  • 對(duì)于 20 % 20\% 20% 的數(shù)據(jù),保證區(qū)域之間沒有重合的部分。
  • 對(duì)于 100 % 100\% 100% 的數(shù)據(jù),保證 1 ≤ l ≤ 1 0 4 1 \leq l \leq 10^4 1l104 1 ≤ m ≤ 100 1 \leq m \leq 100 1m100 0 ≤ u ≤ v ≤ l 0 \leq u \leq v \leq l 0uvl

【題目來源】

NOIP 2005 普及組第二題

代碼(python)

s = input().split()  # .split() 分割字符串,用于讀取整行
L = int(s[0])
M = int(s[1])arr = []for i in range(L + 1):arr.append(True)  # .append() 向arr中添加元素,類似于C++中的.push_back()for i in range(M):s = input().split()for j in range(int(s[0]), int(s[1]) + 1):arr[j] = Falsecounter = 0for i in range(L + 1):if arr[i] == True:counter += 1print(counter)

代碼(C)


#include<stdio.h>
int main()
{int l,m;scanf("%d%d",&l,&m);int tree[l+1],i,j;for(i=0;i<=l;i++){tree[i]=1;}int x1,x2;for(i=0;i<m;i++){scanf("%d%d",&x1,&x2);for(j=x1;j<=x2;j++){if(tree[j]==1) tree[j]=0;}}int temp=0;for(i=0;i<=l;i++){if(tree[i]!=0) temp++; }printf("%d\n",temp);} 

【深基5.例5】五、旗鼓相當(dāng)?shù)膶?duì)手

題目連接:https://www.luogu.com.cn/problem/P5728

題目描述

現(xiàn)有 N N N 名同學(xué)參加了期末考試,并且獲得了每名同學(xué)的信息:語文、數(shù)學(xué)、英語成績(jī)(均為不超過 150 150 150 的自然數(shù))。如果某對(duì)學(xué)生 < i , j > \text{<}i,j\text{>} <i,j> 的每一科成績(jī)的分差都不大于 5 5 5,且總分分差不大于 10 10 10,那么這對(duì)學(xué)生就是“旗鼓相當(dāng)?shù)膶?duì)手”?,F(xiàn)在想知道這些同學(xué)中,有幾對(duì)“旗鼓相當(dāng)?shù)膶?duì)手”?同樣一個(gè)人可能會(huì)和其他好幾名同學(xué)結(jié)對(duì)。

輸入格式

第一行一個(gè)正整數(shù) N N N

接下來 N N N 行,每行三個(gè)整數(shù),其中第 i i i 行表示第 i i i 名同學(xué)的語文、數(shù)學(xué)、英語成績(jī)。最先讀入的同學(xué)編號(hào)為 1 1 1。

輸出格式

輸出一個(gè)整數(shù),表示“旗鼓相當(dāng)?shù)膶?duì)手”的對(duì)數(shù)。

樣例 #1

樣例輸入 #1

3
90 90 90
85 95 90
80 100 91

樣例輸出 #1

2

提示

數(shù)據(jù)保證, 2 ≤ N ≤ 1000 2 \le N\le 1000 2N1000 且每科成績(jī)?yōu)椴怀^ 150 150 150 的自然數(shù)。

代碼(python)

n = eval(input())
matrix = [[eval(j) for j in input().split()] for i in range(n)]
c = 0
for i in range(n):for j in range(i+1, n):if (abs(sum(matrix[i]) - sum(matrix[j])) <= 10) and (abs(matrix[i][0] - matrix[j][0]) <= 5) and (abs(matrix[i][1] - matrix[j][1]) <= 5) and (abs(matrix[i][2] - matrix[j][2]) <= 5):c+=1
print(c)

代碼(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{	int n;scanf("%d",&n);int C[n], M[n], E[n];for(int i = 0;i < n;i++){scanf("%d%d%d",&C[i],&M[i],&E[i]);}int couple = 0;for(int i = 0;i < n;i++){for(int j = i+1;j < n;j++){int num = C[i] + M[i] + E[i];int sum = C[j] + M[j] + E[j];if(abs(C[i]-C[j]) <= 5&&abs(M[i]-M[j]) <= 5&&abs(E[i]-E[j])<= 5&&abs(num-sum) <= 10){couple ++;}}}printf("%d\n",couple);return 0;	
} 

六、【深基5.例7】工藝品制作

題目鏈接:https://www.luogu.com.cn/problem/P5729

題目描述

現(xiàn)有一個(gè)長(zhǎng)寬高分別為 w , x , h w,x,h w,x,h 組成的實(shí)心玻璃立方體,可以認(rèn)為是由 1 × 1 × 1 1\times1\times1 1×1×1 的數(shù)個(gè)小方塊組成的,每個(gè)小方塊都有一個(gè)坐標(biāo) $ ( i,j,k ) $?,F(xiàn)在需要進(jìn)行 q q q 次切割。每次切割給出 ( x 1 , y 1 , z 1 ) , ( x 2 , y 2 , z 2 ) (x_1,y_1,z_1),(x_2,y_2,z_2) (x1?,y1?,z1?),(x2?,y2?,z2?) 這 6 個(gè)參數(shù),保證 x 1 ≤ x 2 x_1\le x_2 x1?x2? y 1 ≤ y 2 y_1\le y_2 y1?y2? z 1 ≤ z 2 z_1\le z_2 z1?z2?;每次切割時(shí),使用激光工具切出一個(gè)立方體空洞,空洞的壁平行于立方體的面,空洞的對(duì)角點(diǎn)就是給出的切割參數(shù)的兩個(gè)點(diǎn)。

換句話說,所有滿足 x 1 ≤ i ≤ x 2 x_1\le i\le x_2 x1?ix2?,$y_1\le j \le y_2 , , z_1\le k\le z_2$ 的小方塊 ( i , j , k ) (i,j,k) (i,j,k) 的點(diǎn)都會(huì)被激光蒸發(fā)。例如有一個(gè) 4 × 4 × 4 4\times4\times 4 4×4×4 的大方塊,其體積為 64 64 64;給出參數(shù) ( 1 , 1 , 1 ) , ( 2 , 2 , 2 ) (1,1,1),(2,2,2) (1,1,1),(2,2,2) 時(shí),中間的 8 8 8 塊小方塊就會(huì)被蒸發(fā),剩下 56 56 56 個(gè)小方塊?,F(xiàn)在想知道經(jīng)過所有切割操作后,剩下的工藝品還剩下多少格小方塊的體積?

輸入格式

第一行三個(gè)正整數(shù) w , x , h w,x,h w,x,h。

第二行一個(gè)正整數(shù) q q q。

接下來 q q q 行,每行六個(gè)整數(shù) ( x 1 , y 1 , z 1 ) , ( x 2 , y 2 , z 2 ) (x_1,y_1,z_1),(x_2,y_2,z_2) (x1?,y1?,z1?),(x2?,y2?,z2?)。

輸出格式

輸出一個(gè)整數(shù)表示答案。

樣例 #1

樣例輸入 #1

4 4 4
1
1 1 1 2 2 2

樣例輸出 #1

56

提示

數(shù)據(jù)保證, 1 ≤ w , x , h ≤ 20 1\le w,x,h\le 20 1w,x,h20 1 ≤ q ≤ 100 1 \leq q\le 100 1q100 1 ≤ x 1 ≤ x 2 ≤ w 1 \leq x_1 \leq x_2 \leq w 1x1?x2?w 1 ≤ y 1 ≤ y 2 ≤ x 1 \leq y_1\leq y_2 \leq x 1y1?y2?x 1 ≤ z 1 ≤ z 2 ≤ h 1 \leq z_1 \leq z_2 \leq h 1z1?z2?h。

代碼(python)

w,x,h= map(eval, input().split())
matrix = [[['1' for k in range(h)] for j in range(x)] for i in range(w)]
q=eval(input())
for i in range(q):x1,y1,z1,x2,y2,z2= map(eval, input().split())for x in range(x1-1,x2):for y in range(y1-1,y2):for z in range(z1-1,z2):matrix[x][y][z]='0'
print(str(matrix).count('1'))

代碼(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{int w,x ,y;scanf("%d%d%d",&w,&x,&y);int num[w+1][x+1][y+1];for(int i = 1;i <= w;i++){for(int j = 1;j <= x;j++){for(int t = 1;t <= y;t++){num[i][j][t] = 1;}}}int q;scanf("%d",&q);long long sum = w*x*y;for(int i = 1;i <= q;i++){int x1,x2,x3,y1,y2,y3;scanf("%d%d%d%d%d%d",&x1,&x2,&x3,&y1,&y2,&y3);for(int a = x1;a<= y1;a++){for(int b= x2;b <= y2;b++){for(int c = x3;c <= y3;c++){if(num[a][b][c] == 1){num[a][b][c] = 0;sum --;} }}}}printf("%lld\n",sum);return 0;
}

七、[AHOI2001] 彩票搖獎(jiǎng)

題目鏈接:https://www.luogu.com.cn/problem/P2550

題目描述

為了豐富人民群眾的生活、支持某些社會(huì)公益事業(yè),北塔市設(shè)置了一項(xiàng)彩票。該彩票的規(guī)則是:

  1. 每張彩票上印有 7 7 7 個(gè)各不相同的號(hào)碼,且這些號(hào)碼的取值范圍為 1 ~ 33 1\sim33 133。
  2. 每次在兌獎(jiǎng)前都會(huì)公布一個(gè)由七個(gè)各不相同的號(hào)碼構(gòu)成的中獎(jiǎng)號(hào)碼。
  3. 共設(shè)置 7 7 7 個(gè)獎(jiǎng)項(xiàng),特等獎(jiǎng)和一等獎(jiǎng)至六等獎(jiǎng)。

兌獎(jiǎng)規(guī)則如下:

  • 特等獎(jiǎng):要求彩票上 7 7 7 個(gè)號(hào)碼都出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 一等獎(jiǎng):要求彩票上有 6 6 6 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 二等獎(jiǎng):要求彩票上有 5 5 5 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 三等獎(jiǎng):要求彩票上有 4 4 4 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 四等獎(jiǎng):要求彩票上有 3 3 3 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 五等獎(jiǎng):要求彩票上有 2 2 2 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。
  • 六等獎(jiǎng):要求彩票上有 1 1 1 個(gè)號(hào)碼出現(xiàn)在中獎(jiǎng)號(hào)碼中。

注:兌獎(jiǎng)時(shí)并不考慮彩票上的號(hào)碼和中獎(jiǎng)號(hào)碼中的各個(gè)號(hào)碼出現(xiàn)的位置。例如,中獎(jiǎng)號(hào)碼為 23 31 1 14 19 17 18 23\ 31\ 1\ 14\ 19\ 17\ 18 23?31?1?14?19?17?18,則彩票 12 8 9 23 1 16 7 12\ 8\ 9\ 23\ 1\ 16\ 7 12?8?9?23?1?16?7 由于其中有兩個(gè)號(hào)碼( 23 23 23 1 1 1)出現(xiàn)在中獎(jiǎng)號(hào)碼中,所以該彩票中了五等獎(jiǎng)。

現(xiàn)已知中獎(jiǎng)號(hào)碼和小明買的若干張彩票的號(hào)碼,請(qǐng)你寫一個(gè)程序幫助小明判斷他買的彩票的中獎(jiǎng)情況。

輸入格式

輸入的第一行只有一個(gè)自然數(shù) n n n,表示小明買的彩票張數(shù);

第二行存放了 7 7 7 個(gè)介于 1 1 1 33 33 33 之間的自然數(shù),表示中獎(jiǎng)號(hào)碼;

在隨后的 n n n 行中每行都有 7 7 7 個(gè)介于 1 1 1 33 33 33 之間的自然數(shù),分別表示小明所買的 n n n 張彩票。

輸出格式

依次輸出小明所買的彩票的中獎(jiǎng)情況(中獎(jiǎng)的張數(shù)),首先輸出特等獎(jiǎng)的中獎(jiǎng)張數(shù),然后依次輸出一等獎(jiǎng)至六等獎(jiǎng)的中獎(jiǎng)張數(shù)。

樣例 #1

樣例輸入 #1

2
23 31 1 14 19 17 18
12 8 9 23 1 16 7
11 7 10 21 2 9 31

樣例輸出 #1

0 0 0 0 0 1 1

提示

數(shù)據(jù)規(guī)模與約定

對(duì)于 100 % 100\% 100% 的數(shù)據(jù),保證 1 ≤ n < 1000 1 \leq n\lt1000 1n<1000。

代碼(python)

"""
P2550 [AHOI2001]彩票搖獎(jiǎng)(python3實(shí)現(xiàn))
https://www.luogu.com.cn/problem/P2550
"""
n=int( input() )b=list( map( int,input().split() ) )c=[0]*50d=[0]*10for i in range(1,8):c[ b[i-1] ]=1for i in range(1,n+1):sx=0a=list( map( int,input().split() ) )for j in range(1,8):if c[a[j-1]]==1:sx+=1d[7-sx+1]+=1for i in range(1,8):print(d[i],end=" ")

代碼(C)

#include<stdio.h>
int main()
{int n,m=7;int a[1001][7]={0},b[7]={0}; //把數(shù)組定義大一點(diǎn),不然就會(huì)WA scanf("%d\n",&n);for(int i=0;i<=n;i++)    //存入中獎(jiǎng)號(hào)碼及買入彩票號(hào)碼 {for(int j=0;j<7;j++){scanf("%d",&a[i][j]);}}for(int i=1;i<=n;i++)  {for(int j=0;j<7;j++){for(int k=0;k<7;k++){if(a[i][j]==a[0][k])m--;}}b[m]++;m=7;}for(int i=0;i<7;i++){printf("%d ",b[i]);}return 0;} 

八、[NOIP2015 提高組] 神奇的幻方

題目鏈接:https://www.luogu.com.cn/problem/P2615

題目描述

幻方是一種很神奇的 N × N N\times N N×N 矩陣:它由數(shù)字 1 , 2 , 3 , ? ? , N × N 1,2,3,\cdots \cdots ,N \times N 1,2,3,??,N×N 構(gòu)成,且每行、每列及兩條對(duì)角線上的數(shù)字之和都相同。

當(dāng) N N N 為奇數(shù)時(shí),我們可以通過下方法構(gòu)建一個(gè)幻方:

首先將 1 1 1 寫在第一行的中間。

之后,按如下方式從小到大依次填寫每個(gè)數(shù) K ( K = 2 , 3 , ? , N × N ) K \ (K=2,3,\cdots,N \times N) K?(K=2,3,?,N×N)

  1. ( K ? 1 ) (K-1) (K?1) 在第一行但不在最后一列,則將 K K K 填在最后一行, ( K ? 1 ) (K-1) (K?1) 所在列的右一列;
  2. ( K ? 1 ) (K-1) (K?1) 在最后一列但不在第一行,則將 K K K 填在第一列, ( K ? 1 ) (K-1) (K?1) 所在行的上一行;
  3. ( K ? 1 ) (K-1) (K?1) 在第一行最后一列,則將 K K K 填在 ( K ? 1 ) (K-1) (K?1) 的正下方;
  4. ( K ? 1 ) (K-1) (K?1) 既不在第一行,也不在最后一列,如果 ( K ? 1 ) (K-1) (K?1) 的右上方還未填數(shù),則將 K K K 填在 ( K ? 1 ) (K-1) (K?1) 的右上方,否則將 K K K 填在 ( K ? 1 ) (K-1) (K?1) 的正下方。

現(xiàn)給定 N N N ,請(qǐng)按上述方法構(gòu)造 N × N N \times N N×N 的幻方。

輸入格式

一個(gè)正整數(shù) N N N,即幻方的大小。

輸出格式

N N N 行,每行 N N N 個(gè)整數(shù),即按上述方法構(gòu)造出的 N × N N \times N N×N 的幻方,相鄰兩個(gè)整數(shù)之間用單空格隔開。

樣例 #1

樣例輸入 #1

3

樣例輸出 #1

8 1 6
3 5 7
4 9 2

樣例 #2

樣例輸入 #2

25

樣例輸出 #2

327 354 381 408 435 462 489 516 543 570 597 624 1 28 55 82 109 136 163 190 217 244 271 298 325
353 380 407 434 461 488 515 542 569 596 623 25 27 54 81 108 135 162 189 216 243 270 297 324 326
379 406 433 460 487 514 541 568 595 622 24 26 53 80 107 134 161 188 215 242 269 296 323 350 352
405 432 459 486 513 540 567 594 621 23 50 52 79 106 133 160 187 214 241 268 295 322 349 351 378
431 458 485 512 539 566 593 620 22 49 51 78 105 132 159 186 213 240 267 294 321 348 375 377 404
457 484 511 538 565 592 619 21 48 75 77 104 131 158 185 212 239 266 293 320 347 374 376 403 430
483 510 537 564 591 618 20 47 74 76 103 130 157 184 211 238 265 292 319 346 373 400 402 429 456
509 536 563 590 617 19 46 73 100 102 129 156 183 210 237 264 291 318 345 372 399 401 428 455 482
535 562 589 616 18 45 72 99 101 128 155 182 209 236 263 290 317 344 371 398 425 427 454 481 508
561 588 615 17 44 71 98 125 127 154 181 208 235 262 289 316 343 370 397 424 426 453 480 507 534
587 614 16 43 70 97 124 126 153 180 207 234 261 288 315 342 369 396 423 450 452 479 506 533 560
613 15 42 69 96 123 150 152 179 206 233 260 287 314 341 368 395 422 449 451 478 505 532 559 586
14 41 68 95 122 149 151 178 205 232 259 286 313 340 367 394 421 448 475 477 504 531 558 585 612
40 67 94 121 148 175 177 204 231 258 285 312 339 366 393 420 447 474 476 503 530 557 584 611 13
66 93 120 147 174 176 203 230 257 284 311 338 365 392 419 446 473 500 502 529 556 583 610 12 39
92 119 146 173 200 202 229 256 283 310 337 364 391 418 445 472 499 501 528 555 582 609 11 38 65
118 145 172 199 201 228 255 282 309 336 363 390 417 444 471 498 525 527 554 581 608 10 37 64 91
144 171 198 225 227 254 281 308 335 362 389 416 443 470 497 524 526 553 580 607 9 36 63 90 117
170 197 224 226 253 280 307 334 361 388 415 442 469 496 523 550 552 579 606 8 35 62 89 116 143
196 223 250 252 279 306 333 360 387 414 441 468 495 522 549 551 578 605 7 34 61 88 115 142 169
222 249 251 278 305 332 359 386 413 440 467 494 521 548 575 577 604 6 33 60 87 114 141 168 195
248 275 277 304 331 358 385 412 439 466 493 520 547 574 576 603 5 32 59 86 113 140 167 194 221
274 276 303 330 357 384 411 438 465 492 519 546 573 600 602 4 31 58 85 112 139 166 193 220 247
300 302 329 356 383 410 437 464 491 518 545 572 599 601 3 30 57 84 111 138 165 192 219 246 273
301 328 355 382 409 436 463 490 517 544 571 598 625 2 29 56 83 110 137 164 191 218 245 272 299

提示

對(duì)于 100 % 100\% 100% 的數(shù)據(jù),對(duì)于全部數(shù)據(jù), 1 ≤ N ≤ 39 1 \leq N \leq 39 1N39 N N N 為奇數(shù)。

NOIp2015 提高組 D1T1

代碼(python)

n=eval(input())
matrix = [[0 for j in range(n)] for i in range(n)]matrix[0][n//2]=1
h,l=0,n//2for k in range(2,n*n+1):if h==0 and l!=n-1:h,l=h-1,l+1elif l==n-1 and h!=0:h,l=h-1,0elif h==0 and l==n-1: h,l=h+1,lelif h!=0 and l!=n-1:if matrix[h-1][l+1]==0:h,l=h-1,l+1else: h,l=h+1,lif h <0:h+=nif l <0:l+=nmatrix[h][l]=k
for i in matrix:print(' '.join(map(str, i)))

代碼(C++)

#include <iostream>
using namespace std;int main() {int n,a[50][50]={0};cin >> n;int h=0,l=n/2;a[h][l]=1;for (int k = 2; k <= n*n; ++k) {if(h==0 && l!=n-1){h=n-1;l++;}else if(h==0 && l==n-1)h++;else if(l==n-1 && h!=0){h--;l=0;}else if(h!=0 && l!=n-1){if (a[h-1][l+1]==0){h--;l++;}else h++;}a[h][l]=k;}for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {cout<< a[i][j]<<' ';}cout<<endl;}return 0;
}

九、【深基5.例10】顯示屏

題目鏈接:https://www.luogu.com.cn/problem/P5730

題目描述

液晶屏上,每個(gè)阿拉伯?dāng)?shù)字都是可以顯示成 3 × 5 3\times5 3×5 的點(diǎn)陣的(其中 X 表示亮點(diǎn),. 表示暗點(diǎn))。現(xiàn)在給出數(shù)字位數(shù)(不超過 100 100 100)和一串?dāng)?shù)字,要求輸出這些數(shù)字在顯示屏上的效果。數(shù)字的顯示方式如同樣例輸出,注意每個(gè)數(shù)字之間都有一列間隔。

輸入格式

第一行輸入一個(gè)正整數(shù) n n n,表示數(shù)字的位數(shù)。

第二行輸入一個(gè)長(zhǎng)度為 n n n 的自然數(shù)。

輸出格式

輸出五行,表示顯示屏上的數(shù)字。

樣例 #1

樣例輸入 #1

10
0123456789

樣例輸出 #1

XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX
X.X...X...X...X.X.X.X...X.....X.X.X.X.X
X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX
X.X...X.X.....X...X...X.X.X...X.X.X...X
XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX

提示

數(shù)據(jù)保證, 1 ≤ n ≤ 100 1 \leq n \leq 100 1n100

代碼(C++)

#include <iostream>
#include <cstring>
using namespace std;string s[10][5] = {{"XXX", "X.X", "X.X", "X.X", "XXX"},{"..X", "..X", "..X", "..X", "..X"},{"XXX", "..X", "XXX", "X..", "XXX"},{"XXX", "..X", "XXX", "..X", "XXX"},{"X.X", "X.X", "XXX", "..X", "..X"},{"XXX", "X..", "XXX", "..X", "XXX"},{"XXX", "X..", "XXX", "X.X", "XXX"},{"XXX", "..X", "..X", "..X", "..X"},{"XXX", "X.X", "XXX", "X.X", "XXX"},{"XXX", "X.X", "XXX", "..X", "XXX"},
};int main() {int n;string ss;cin >> n >> ss;for (int i=0; i<5; ++i) {for (int j=0; j<n; ++j) {cout << s[ss[j]-'0'][i];if (j != n-1)cout << '.';}cout << '\n';}return 0;
}

十、夢(mèng)中的統(tǒng)計(jì)

題目鏈接:https://www.luogu.com.cn/problem/P1554

題目背景

Bessie 處于半夢(mèng)半醒的狀態(tài)。過了一會(huì)兒,她意識(shí)到她在數(shù)數(shù),不能入睡。

題目描述

Bessie 的大腦反應(yīng)靈敏,仿佛真實(shí)地看到了她數(shù)過的一個(gè)又一個(gè)數(shù)。她開始注意每一個(gè)數(shù)碼( 0 … 9 0 \ldots 9 09):每一個(gè)數(shù)碼在計(jì)數(shù)的過程中出現(xiàn)過多少次?

給出兩個(gè)整數(shù) M M M N N N,求在序列 [ M , M + 1 , M + 2 , … , N ? 1 , N ] [M, M + 1, M + 2, \ldots, N - 1, N] [M,M+1,M+2,,N?1,N] 中每一個(gè)數(shù)碼出現(xiàn)了多少次。

輸入格式

1 1 1 行: 兩個(gè)用空格分開的整數(shù) M M M N N N。

輸出格式

1 1 1 行: 十個(gè)用空格分開的整數(shù),分別表示數(shù)碼 0 … 9 0 \ldots 9 09 在序列中出現(xiàn)的次數(shù)。

樣例 #1

樣例輸入 #1

129 137

樣例輸出 #1

1 10 2 9 1 1 1 1 0 1

提示

數(shù)據(jù)保證, 1 ≤ M ≤ N ≤ 2 × 1 0 9 1 \leq M \leq N \leq 2 \times 10^9 1MN2×109 N ? M ≤ 5 × 1 0 5 N-M \leq 5 \times 10^5 N?M5×105。

代碼(python)

 
a=[0]*1010n,m=map( int,input().split() )for i in range(n,m+1):j=iwhile j>0:a[j%10]+=1j//=10for i in range(10):print(a[i],end=" ")

代碼(C)

 
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main(){int i,n1,n2,b;int a[10]={0};scanf("%d %d",&n1,&n2);for(i=n1;i<=n2;i++){int num=i;while(num>0){b=num%10;num=num/10;a[b]++;}}for(i=0;i<10;i++){printf("%d ",a[i]);}return 0;
} 

十一、[NOIP2014 普及組] 珠心算測(cè)驗(yàn)

題目鏈接:https://www.luogu.com.cn/problem/P2141

題目背景

NOIP2014 普及 T1

題目描述

珠心算是一種通過在腦中模擬算盤變化來完成快速運(yùn)算的一種計(jì)算技術(shù)。珠心算訓(xùn)練,既能夠開發(fā)智力,又能夠?yàn)槿粘I顜砗芏啾憷?#xff0c;因而在很多學(xué)校得到普及。

某學(xué)校的珠心算老師采用一種快速考察珠心算加法能力的測(cè)驗(yàn)方法。他隨機(jī)生成一個(gè)正整數(shù)集合,集合中的數(shù)各不相同,然后要求學(xué)生回答:其中有多少個(gè)數(shù),恰好等于集合中另外兩個(gè)(不同的)數(shù)之和?

最近老師出了一些測(cè)驗(yàn)題,請(qǐng)你幫忙求出答案。

輸入格式

共兩行,第一行包含一個(gè)整數(shù) n n n,表示測(cè)試題中給出的正整數(shù)個(gè)數(shù)。

第二行有 n n n 個(gè)正整數(shù),每?jī)蓚€(gè)正整數(shù)之間用一個(gè)空格隔開,表示測(cè)試題中給出的正整數(shù)。

輸出格式

一個(gè)整數(shù),表示測(cè)驗(yàn)題答案。

樣例 #1

樣例輸入 #1

4
1 2 3 4

樣例輸出 #1

2

提示

【樣例說明】

1 + 2 = 3 , 1 + 3 = 4 1+2=3,1+3=4 1+2=3,1+3=4,故滿足測(cè)試要求的答案為 2 2 2

注意,加數(shù)和被加數(shù)必須是集合中的兩個(gè)不同的數(shù)。

【數(shù)據(jù)說明】

對(duì)于 100 % 100\% 100% 的數(shù)據(jù), 3 ≤ n ≤ 100 3 \leq n \leq 100 3n100,測(cè)驗(yàn)題給出的正整數(shù)大小不超過 10 , 000 10,000 10,000。

代碼(python)


n=input().split()
l=input().split()s=set(l)
l=list(s)
ans=set(l)
cnt=0
ans.clear()
for i in range(0,len(l)):x=int(l[i])for j in range(i+1,len(l)):y=int(l[j])if str(x+y) in s:if str(x+y) in ans:continueelse:cnt+=1ans.add(str(x+y))print (len(ans))

代碼(C)

#include<stdio.h>
#include<stdlib.h>
int a[110];
int n;
int num=0;   //答案數(shù)量
int v[110];  //判斷去重
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<n;i++)   //左邊界for(int j=i+1;j<=n;j++)   //右邊界for(int k=1;k<=n;k++)   //無腦暴搜if(k!=i&&k!=j&&a[i]+a[j]==a[k]&&v[k]==0)   //沒有數(shù)過并且不是邊界{num++;v[k]=1;   //用過啦~}printf("%d",num);//system("pause");   //無視這一行~return 0;
}

十二、愛與愁的心痛

題目鏈接:https://www.luogu.com.cn/problem/P1614

題目背景

(本道題目隱藏了兩首歌名,找找看哪~~~)

《愛與愁的故事第一彈·heartache》第一章。

《我為歌狂》當(dāng)中伍思凱神曲《舞月光》居然沒贏給薩頂頂,愛與愁大神心痛啊~~~而且最近還有一些令人傷心的事情,都讓人心痛(最近真的很煩哈)……

題目描述

最近有 n n n 個(gè)不爽的事,每句話都有一個(gè)正整數(shù)刺痛值(心理承受力極差)。愛與愁大神想知道連續(xù) m m m 個(gè)刺痛值的和的最小值是多少,但是由于業(yè)務(wù)繁忙,愛與愁大神只好請(qǐng)你編個(gè)程序告訴他。

輸入格式

第一行有兩個(gè)用空格隔開的整數(shù),分別代表 n n n m m m。

2 2 2 到第 ( n + 1 ) (n + 1) (n+1) 行,每行一個(gè)整數(shù),第 ( i + 1 ) (i + 1) (i+1) 行的整數(shù) a i a_i ai? 代表第 i i i 件事的刺痛值 a i a_i ai?。

輸出格式

輸出一行一個(gè)整數(shù),表示連續(xù) m m m 個(gè)刺痛值的和的最小值是多少。

樣例 #1

樣例輸入 #1

8 3
1
4
7
3
1
2
4
3

樣例輸出 #1

6

提示

數(shù)據(jù)規(guī)模與約定
  • 對(duì)于 30 % 30\% 30% 的數(shù)據(jù),保證 n ≤ 20 n \leq 20 n20
  • 對(duì)于 60 % 60\% 60% 的數(shù)據(jù),保證 n ≤ 100 n \leq 100 n100。
  • 對(duì)于 90 % 90\% 90% 的數(shù)據(jù),保證 n ≤ 1 0 3 n \leq 10^3 n103。
  • 對(duì)于 100 % 100\% 100% 的數(shù)據(jù),保證 0 ≤ m ≤ n ≤ 3 × 1 0 3 0 \leq m \leq n \leq 3 \times 10^3 0mn3×103 1 ≤ a i ≤ 100 1 \leq a_i \leq 100 1ai?100。

代碼(python)


a = [0] * 100010
h = [0] * 100010
n, m = map(int, input().split())
b = []
for i in range(n):x = input()b.append(int(x))for i in range(n):a[i] = b[i]c = [0] * (n - m + 1)
for i in range(n - m + 1):for k in range(i, i + m):h[i] = h[i] + a[k]c[i] = h[i]
c.sort()
print(c[0])

代碼(C)

#include <stdio.h>
#include <stdlib.h>
#define M 300000
int main(int argc, char *argv[]) {int n, m;scanf("%d%d",&n,&m);int NUM[M];int i, j;for(i = 0;i < n;i++){scanf("%d",&NUM[i]); } long long int sum = 0, all = 1000000;for(i = 0;i < n-m+1;i++){for(j = i;j < m+i;j++){sum  = NUM[j] + sum;}if(sum < all){all = sum;	}sum = 0;}printf("%lld",all); return 0;
}

十三、[USACO08OCT] Bovine Bones G

題目鏈接:https://www.luogu.com.cn/problem/P2911

題面翻譯

貝茜喜歡玩棋盤游戲和角色扮演游戲,所以她說服了約翰開車帶她去小商店.在那里她買了三個(gè)骰子。這三個(gè)不同的骰子的面數(shù)分別為 s 1 , s 2 , s 3 s_1,s_2,s_3 s1?,s2?,s3?

對(duì)于一個(gè)有 S S S 個(gè)面的骰子每個(gè)面上的數(shù)字是 1 , 2 , 3 , … , S 1,2,3,\ldots,S 1,2,3,,S。每個(gè)面(上的數(shù)字)出現(xiàn)的概率均等。貝茜希望找出在所有“三個(gè)面上的數(shù)字的和”中,哪個(gè)和的值出現(xiàn)的概率最大。

現(xiàn)在給出每個(gè)骰子的面數(shù),需要求出哪個(gè)所有“三個(gè)面上的數(shù)字的和”出現(xiàn)得最頻繁。如果有很多個(gè)和出現(xiàn)的概率相同,那么只需要輸出最小的那個(gè)。

數(shù)據(jù)范圍: 2 ≤ s 1 ≤ 20 2\le s_1\leq 20 2s1?20 2 ≤ s 2 ≤ 20 2 \leq s_2\leq 20 2s2?20 2 ≤ s 3 ≤ 40 2 \leq s_3\leq 40 2s3?40

題目描述

Bessie loves board games and role-playing games so she persuaded Farmer John to drive her to the hobby shop where she purchased three dice for rolling. These fair dice have S1, S2, and S3 sides

respectively (2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3 <= 40).

Bessie rolls and rolls and rolls trying to figure out which three-dice sum appears most often.

Given the number of sides on each of the three dice, determine which three-dice sum appears most frequently. If more than one sum can appear most frequently, report the smallest such sum.

POINTS: 70

輸入格式

* Line 1: Three space-separated integers: S1, S2, and S3

輸出格式

* Line 1: The smallest integer sum that appears most frequently when the dice are rolled in every possible combination.

樣例 #1

樣例輸入 #1

3 2 3

樣例輸出 #1

5

提示

Here are all the possible outcomes.

1 1 1 -> 3  
1 2 1 -> 4  
2 1 1 -> 4  
2 2 1 -> 5  
3 1 1 -> 5  
3 2 1 -> 6 
1 1 2 -> 4  
1 2 2 -> 5  
2 1 2 -> 5  
2 2 2 -> 6  
3 1 2 -> 6  
3 2 2 -> 7 
1 1 3 -> 5  
1 2 3 -> 6  
2 1 3 -> 6  
2 2 3 -> 7  
3 1 3 -> 7  
3 2 3 -> 8

Both 5 and 6 appear most frequently (five times each), so 5 is the answer.

代碼(python)

flag = [0] * 100010s1, s2, s3 = map(int, input().split())for i in range(1, s1 + 1):for j in range(1, s2 + 1):for z in range(1, s3 + 1):flag[i + j + z] += 1sum = 0
ans = -2147483647
tmp = 0for i in range(1, s1 * s2 * s3 + 1):sum = flag[i]if sum > ans:ans = sumtmp = iprint(tmp)

代碼(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{	int s1, s2, s3;scanf("%d%d%d",&s1,&s2,&s3);int sum = 0;int m = s1 + s2 + s3;int num[m+1];for(int i = 3;i <= m;i++){num[i] = 0;}for(int i = 1;i <= s1;i++){for(int j = 1;j <= s2;j++){for(int t = 1;t <= s3;t++){sum = i + j + t;num[sum]++;}}}int min = 0;int ans = 0;for(int i = 3;i <= m;i++){if(num[i] > min){min = num[i];ans = i;}}printf("%d\n",ans);return 0;
}

十四、開燈

題目鏈接:https://www.luogu.com.cn/problem/P1161

題目描述

在一條無限長(zhǎng)的路上,有一排無限長(zhǎng)的路燈,編號(hào)為 1 , 2 , 3 , 4 , … 1,2,3,4,\dots 1,2,3,4,。

每一盞燈只有兩種可能的狀態(tài),開或者關(guān)。如果按一下某一盞燈的開關(guān),那么這盞燈的狀態(tài)將發(fā)生改變。如果原來是開,將變成關(guān)。如果原來是關(guān),將變成開。

在剛開始的時(shí)候,所有的燈都是關(guān)的。小明每次可以進(jìn)行如下的操作:

指定兩個(gè)數(shù), a , t a,t a,t a a a 為實(shí)數(shù), t t t 為正整數(shù))。將編號(hào)為 ? a ? , ? 2 × a ? , ? 3 × a ? , … , ? t × a ? \lfloor a\rfloor,\lfloor 2 \times a\rfloor,\lfloor3 \times a\rfloor,\dots,\lfloor t \times a\rfloor ?a?,?2×a?,?3×a?,,?t×a? 的燈的開關(guān)各按一次。其中 ? k ? \lfloor k \rfloor ?k? 表示實(shí)數(shù) k k k 的整數(shù)部分。

在小明進(jìn)行了 n n n 次操作后,小明突然發(fā)現(xiàn),這個(gè)時(shí)候只有一盞燈是開的,小明很想知道這盞燈的編號(hào),可是這盞燈離小明太遠(yuǎn)了,小明看不清編號(hào)是多少。

幸好,小明還記得之前的 n n n 次操作。于是小明找到了你,你能幫他計(jì)算出這盞開著的燈的編號(hào)嗎?

輸入格式

第一行一個(gè)正整數(shù) n n n,表示 n n n 次操作。

接下來有 n n n 行,每行兩個(gè)數(shù), a i , t i a_i,t_i ai?,ti?。其中 a i a_i ai? 是實(shí)數(shù),小數(shù)點(diǎn)后一定有 6 6 6 位, t i t_i ti? 是正整數(shù)。

輸出格式

僅一個(gè)正整數(shù),那盞開著的燈的編號(hào)。

樣例 #1

樣例輸入 #1

3
1.618034 13
2.618034 7
1.000000 21

樣例輸出 #1

20

提示

T = ∑ i = 1 n t i = t 1 + t 2 + t 3 + ? + t n T=\sum \limits_{i=1}^n t_i = t_1+t_2+t_3+\dots+t_n T=i=1n?ti?=t1?+t2?+t3?+?+tn?。

  • 對(duì)于 30 % 30\% 30% 的數(shù)據(jù),滿足 T ≤ 1000 T \le 1000 T1000
  • 對(duì)于 80 % 80\% 80% 的數(shù)據(jù),滿足 T ≤ 200000 T \le 200000 T200000
  • 對(duì)于 100 % 100\% 100% 的數(shù)據(jù),滿足 T ≤ 2000000 T \le 2000000 T2000000
  • 對(duì)于 100 % 100\% 100% 的數(shù)據(jù),滿足 n ≤ 5000 n \le 5000 n5000 1 ≤ a i < 1000 1 \le a_i<1000 1ai?<1000 1 ≤ t i ≤ T 1 \le t_i \le T 1ti?T。

數(shù)據(jù)保證,在經(jīng)過 n n n 次操作后,有且只有一盞燈是開的,不必判錯(cuò)。而且對(duì)于所有的 i i i 來說, t i × a i t_i\times a_i ti?×ai? 的最大值不超過 2000000 2000000 2000000。

代碼(python)

a=[0]*2000001n=int(input())for i in range(1,n+1):x,y=map( float,input().split() )for j in range(1,int(y+1) ):if a[int(j*x)]==0:a[int(j*x)]=1else:a[int(j*x)]=0i=1while 1:if a[i]==1:print(i)breaki+=1

代碼(C)

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define f(i,j,n) for(i=j;i<=n;i++) //for循環(huán)簡(jiǎn)寫,福利福利~int main(){int n, t, i, j, ans = 0;double a;scanf("%d", &n);f(i, 1, n){scanf("%lf %d", &a, &t);f(j,1,t)				//每一次再循環(huán)t次 ans ^= (int)(j*a); //重點(diǎn):位運(yùn)算,直接異或。這里注意要用int強(qiáng)制把j*a的值轉(zhuǎn)換成整型}printf("%d", ans); //輸出ans即可return 0; 
}

十五、【深基5.習(xí)6】蛇形方陣

題目鏈接:https://www.luogu.com.cn/problem/P5731

題目描述

給出一個(gè)不大于 9 9 9 的正整數(shù) n n n,輸出 n × n n\times n n×n
的蛇形方陣。

從左上角填上 1 1 1 開始,順時(shí)針方向依次填入數(shù)字,如同樣例所示。注意每個(gè)數(shù)字有都會(huì)占用 3 3 3 個(gè)字符,前面使用空格補(bǔ)齊。

輸入格式

輸入一個(gè)正整數(shù) n n n,含義如題所述。

輸出格式

輸出符合題目要求的蛇形矩陣。

樣例 #1

樣例輸入 #1

4

樣例輸出 #1

1  2  3  412 13 14  511 16 15  610  9  8  7

提示

數(shù)據(jù)保證, 1 ≤ n ≤ 9 1 \leq n \leq 9 1n9。

代碼(python)

n=eval(input())
matrix = [[0 for j in range(n)] for i in range(n)]
x,y=0,0towards=['y=y+1','x+=1','y-=1','x-=1']
t=0
for i in range(1,n*n+1):matrix[x][y]=iexec(towards[t])if x>n-1 or y>n-1 or matrix[x][y]!=0:exec(towards[(t+2)%4])t=(t+1)%4exec(towards[t])
for i in (matrix):for j in i:print(f"{j: >3}",end='')print()

代碼(C)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int num = 1, a[12][12];
int main() {int n;scanf("%d",&n);int t = ceil(1.0 * n / 2);根據(jù)推導(dǎo)總結(jié),轉(zhuǎn)的圈數(shù)為行數(shù)除以2,如果行數(shù)是奇數(shù)還要+1,其實(shí)就是ceil。for(int i=0; i<t; i++) {for (int j = i; j < n - i; j++) {a[i][j] = num++;//每一圈判斷第一行}for (int j = i + 1; j < n - i - 1; j++) {a[j][n - i - 1] = num++;//每一圈判斷最后一列}for (int j = n - i - 1; j > i; j--) {a[n - i - 1][j] = num++;//判斷每一圈最后一行}for (int j = n - i - 1; j > i; j--)  {a[j][i] = num++;//判斷每一圈第一列}}for(int i=0; i<n; i++) {for(int j=0; j<n; j++) {printf("%3d", a[i][j]);//輸出方式要注意,%3d}printf("\n");}return 0;
} 

十六、【深基5.習(xí)7】楊輝三角

題目鏈接:https://www.luogu.com.cn/problem/P5732

題目描述

給出 n ( n ≤ 20 ) n(n\le20) n(n20),輸出楊輝三角的前 n n n 行。

如果你不知道什么是楊輝三角,可以觀察樣例找找規(guī)律。

輸入格式

輸出格式

樣例 #1

樣例輸入 #1

6

樣例輸出 #1

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

代碼(python)


n = int(input())
b = [[0] * n for t in range(n)]
for i in range(n):b[i][0] = 1b[i][i] = 1
for i in range(n):for j in range(1, i):b[i][j] = b[i - 1][j] + b[i - 1][j - 1]for i in range(n):for j in range(i + 1):print(b[i][j], end=' ')print()

代碼(c)

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int a[21][21];
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++)a[i][1]=a[i][i]=1;//賦初值for(int i=1;i<=n;i++)for(int j=2;j<i;j++)//因?yàn)閍[i][1]、a[i][i]已經(jīng)賦值過了,所以循環(huán)是2~n-1a[i][j]=a[i-1][j]+a[i-1][j-1];for(int i=1;i<=n;i++){for(int j=1;j<=i;j++)printf("%d ",a[i][j]);printf("\n");}
}

十七、【Mc生存】插火把

題目鏈接:https://www.luogu.com.cn/problem/P1789

題目描述

話說有一天 linyorson 在“我的世界”開了一個(gè) n × n n \times n n×n 的方陣,現(xiàn)在他有 m m m 個(gè)火把和 k k k 個(gè)螢石,分別放在 ( x 1 , y 1 ) ~ ( x m , y m ) (x_1, y_1) \sim (x_m, y_m) (x1?,y1?)(xm?,ym?) ( o 1 , p 1 ) ~ ( o k , p k ) (o_1, p_1) \sim (o_k, p_k) (o1?,p1?)(ok?,pk?) 的位置,沒有光并且沒放東西的地方會(huì)生成怪物。請(qǐng)問在這個(gè)方陣中有幾個(gè)點(diǎn)會(huì)生成怪物?

P.S. 火把的照亮范圍是:

    |暗|暗| 光 |暗|暗||暗|光| 光 |光|暗||光|光|火把|光|光||暗|光| 光 |光|暗||暗|暗| 光 |暗|暗|

螢石:

    |光|光| 光 |光|光||光|光| 光 |光|光||光|光|螢石|光|光||光|光| 光 |光|光||光|光| 光 |光|光|

輸入格式

輸入共 m + k + 1 m + k + 1 m+k+1 行。
第一行為 n , m , k n, m, k n,m,k。
2 2 2 到第 m + 1 m + 1 m+1 行分別是火把的位置 x i , y i x_i, y_i xi?,yi?
m + 2 m + 2 m+2 到第 m + k + 1 m + k + 1 m+k+1 行分別是螢石的位置 o i , p i o_i, p_i oi?,pi?。

注:可能沒有螢石,但一定有火把。

輸出格式

有幾個(gè)點(diǎn)會(huì)生出怪物。

樣例 #1

樣例輸入 #1

5 1 0
3 3

樣例輸出 #1

12

提示

數(shù)據(jù)保證, 1 ≤ n ≤ 100 1 \le n \le 100 1n100 1 ≤ m + k ≤ 25 1 \leq m+k \leq 25 1m+k25 1 ≤ m ≤ 25 1 \leq m \leq 25 1m25 0 ≤ k ≤ 5 0 \leq k \leq 5 0k5。

代碼(python)

# 讀數(shù)據(jù)到數(shù)組中
def readToArray():s = input()nums = s.strip().split()nums = [int(num) for num in nums]return numsn,m,k = readToArray()[0:3]
arr = [[0 for i in range(n+5)] for i in range(n+5)]# 根據(jù)火把修改位置
def modifyFire(x,y):for i in range(-1,2):for j in range (-1,2):nx = x+iny = y+jif nx>0 and nx<=n and ny >0 and ny <= n:arr[nx][ny] = 1 # 修改值# 修改零散點(diǎn)if y -2 > 0 :arr[x][y-2] = 1if x-2>0:arr[x-2][y] = 1if x+2 <= n:arr[x+2][y] = 1if y+2 <= n :arr[x][y+2] = 1def modifyStone(x,y):for i in range(-2, 3):for j in range(-2, 3):nx = x + iny = y + jif nx > 0 and nx <= n and ny > 0 and ny <= n:arr[nx][ny] = 1  # 修改值#輸入火把
for i in range(m):x,y = readToArray()[0:2]# 根據(jù)火把的位置遍歷去修改數(shù)組modifyFire(x,y)for i in range(k):x,y = readToArray()[0:2]modifyStone(x,y)cnt = 0
for i in range(1,n+1):for j in range(1,n+1):if arr[i][j] == 0:cnt+=1
print(cnt)

代碼(c)

#include<stdio.h>int n,m,k,x,y,i,j,u,v,ans;//n,m,k(題目),x,y(臨時(shí)坐標(biāo)),i,j,u,v(循環(huán)變量),ans(答案)。int main(){int ma[1000][1000];//自己試了幾次,數(shù)據(jù)只有這么大……scanf("%d %d %d", &n, &m, &k);for(i=1;i<=m;i++){//火把scanf("%d %d", &x, &y);ma[x-2][y]=ma[x-1][y+1]=ma[x-1][y]=ma[x-1][y-1]=ma[x][y+2]=ma[x][y+1]=ma[x][y]=ma[x][y-1]=ma[x][y-2]=ma[x+1][y+1]=ma[x+1][y]=ma[x+1][y-1]=ma[x+2][y]=1;//要標(biāo)記有光的。(慢慢打,有點(diǎn)麻煩。)}for(i=1;i<=k;i++){//螢石scanf("%d %d", &x, &y);for(u=-2;u<=2;u++)for(v=-2;v<=2;v++)ma[x+u][y+v]=1;//螢石用循環(huán)標(biāo)記,代碼就短一些。}for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(ma[i][j]==0)ans++;printf("%d", ans);return 0;
}

十八、壓縮技術(shù)

題目鏈接:https://www.luogu.com.cn/problem/P1319

題目描述

設(shè)某漢字由 N × N N \times N N×N 0 \texttt 0 0 1 \texttt 1 1 的點(diǎn)陣圖案組成。

我們依照以下規(guī)則生成壓縮碼。連續(xù)一組數(shù)值:從漢字點(diǎn)陣圖案的第一行第一個(gè)符號(hào)開始計(jì)算,按書寫順序從左到右,由上至下。第一個(gè)數(shù)表示連續(xù)有幾個(gè) 0 \texttt 0 0,第二個(gè)數(shù)表示接下來連續(xù)有幾個(gè) 1 \texttt 1 1,第三個(gè)數(shù)再接下來連續(xù)有幾個(gè) 0 \texttt 0 0,第四個(gè)數(shù)接著連續(xù)幾個(gè) 1 \texttt 1 1,以此類推……

例如: 以下漢字點(diǎn)陣圖案:

0001000
0001000
0001111
0001000
0001000
0001000
1111111

對(duì)應(yīng)的壓縮碼是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 \texttt {7 3 1 6 1 6 4 3 1 6 1 6 1 3 7} 7?3?1?6?1?6?4?3?1?6?1?6?1?3?7 (第一個(gè)數(shù)是 N N N ,其余各位表示交替表示0和1 的個(gè)數(shù),壓縮碼保證 N × N = N \times N= N×N= 交替的各位數(shù)之和)

輸入格式

數(shù)據(jù)輸入一行,由空格隔開的若干個(gè)整數(shù),表示壓縮碼。

其中,壓縮碼的第一個(gè)數(shù)字就是 N N N,表示這個(gè)點(diǎn)陣應(yīng)當(dāng)是 N × N N\times N N×N 的大小。

接下來的若干個(gè)數(shù)字,含義如題目描述所述。

輸出格式

輸出一個(gè) N × N N\times N N×N 的 01 矩陣,表示最后的漢字點(diǎn)陣圖(點(diǎn)陣符號(hào)之間不留空格)。

樣例 #1

樣例輸入 #1

7 3 1 6 1 6 4 3 1 6 1 6 1 3 7

樣例輸出 #1

0001000
0001000
0001111
0001000
0001000
0001000
1111111

提示

樣例解釋

數(shù)據(jù)范圍

數(shù)據(jù)保證, 3 ≤ N ≤ 200 3\leq N\leq 200 3N200。

代碼(python)

t = 0a = list(map(int, input().split()))n = a[0]i = 0
s = 0while s < n * n:i += 1b = a[i]while b >= 1:if t == n:print()t = 0if i % 2 == 1:print("0", end='')else:print("1", end='')t += 1s += 1b -= 1print()

代碼(C)

#include <stdio.h>
#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {int N;scanf("%d",&N);//找到行數(shù) int sum = 0, spot = 0, count = 0;while(sum < N*N){int n;scanf("%d",&n);for(int i = 0;i < n;i++){printf("%d",spot);count++;sum++;if(count == N){printf("\n");count = 0;}}if(spot == 1)spot = 0;elsespot = 1;} return 0;
}

十九、壓縮技術(shù)(續(xù)集版)

題目鏈接:https://www.luogu.com.cn/problem/P1320

題目描述

設(shè)某漢字由 N × N N \times N N×N 0 \texttt 0 0 1 \texttt 1 1 的點(diǎn)陣圖案組成。

我們依照以下規(guī)則生成壓縮碼。連續(xù)一組數(shù)值:從漢字點(diǎn)陣圖案的第一行第一個(gè)符號(hào)開始計(jì)算,按書寫順序從左到右,由上至下。第一個(gè)數(shù)表示連續(xù)有幾個(gè) 0 \texttt 0 0,第二個(gè)數(shù)表示接下來連續(xù)有幾個(gè) 1 \texttt 1 1,第三個(gè)數(shù)再接下來連續(xù)有幾個(gè) 0 \texttt 0 0,第四個(gè)數(shù)接著連續(xù)幾個(gè) 1 \texttt 1 1,以此類推……

例如: 以下漢字點(diǎn)陣圖案:

0001000
0001000
0001111
0001000
0001000
0001000
1111111

對(duì)應(yīng)的壓縮碼是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 \texttt {7 3 1 6 1 6 4 3 1 6 1 6 1 3 7} 7?3?1?6?1?6?4?3?1?6?1?6?1?3?7 (第一個(gè)數(shù)是 N N N ,其余各位表示交替表示0和1 的個(gè)數(shù),壓縮碼保證 N × N = N \times N= N×N= 交替的各位數(shù)之和)

輸入格式

漢字點(diǎn)陣圖(點(diǎn)陣符號(hào)之間不留空格)。

輸出格式

輸出一行,壓縮碼。

樣例 #1

樣例輸入 #1

0001000
0001000
0001111
0001000
0001000
0001000
1111111

樣例輸出 #1

7 3 1 6 1 6 4 3 1 6 1 6 1 3 7

提示

數(shù)據(jù)保證, 3 ≤ N ≤ 200 3\leq N\leq 200 3N200。

代碼(python)

a = list(input())
a.pop()
n = len(a)
for i in range(n-2) :a += list(input())a.pop()
a += list(input()) #就不知道為什么最后一行的換行符是不讀入的,#加了這個(gè)就ac了
b = a.copy()
# b.pop()t = 0
flag = '0'
print(n,end=' ')
i = 0
while i < n * n :while (i < n * n and b[i] == flag) :t += 1i += 1if i >= n * n :print(t)else :print(t,end=' ')t = 0flag = str(1 - int(flag))

代碼(C)

#include <stdio.h>
#include <math.h>
#include <string.h>
int main(void)
{int i,n,count=0;char str[40000],temp[200];int a[40000],len;while((scanf("%s",temp))!=EOF)strcat(str,temp);len=strlen(str);n=(int)sqrt(len);for(i=0;i<=len;i++)a[i]=str[i]-'0';if(a[0]==1){printf("%d 0 ",n);i++;}elseprintf("%d ",n);for(i=0;i<len-1;i++){if(a[i]==a[i+1])count++;else{printf("%d ",++count);count=0;}}if(a[len-2]==a[len-1])printf("%d",++count);elseprintf("1");return 0;
}
http://www.risenshineclean.com/news/33300.html

相關(guān)文章:

  • 一級(jí)a做爰片免費(fèi)無碼網(wǎng)站網(wǎng)絡(luò)流量分析工具
  • php網(wǎng)站開發(fā)百度云產(chǎn)品推廣計(jì)劃方案
  • 網(wǎng)站對(duì)比app還有優(yōu)勢(shì)嗎2023第三波疫情已經(jīng)到來了
  • 網(wǎng)站空間多久續(xù)一次費(fèi)seo優(yōu)化團(tuán)隊(duì)
  • 鎮(zhèn)江外貿(mào)網(wǎng)站建設(shè)站外推廣渠道有哪些
  • Axure只是做網(wǎng)站嗎怎么注冊(cè)一個(gè)自己的網(wǎng)址
  • 湛江自做網(wǎng)站杭州谷歌推廣
  • 河南科興建設(shè)有限公司網(wǎng)站網(wǎng)站推廣公司黃頁
  • 石家莊專業(yè)商城網(wǎng)站制作百度如何優(yōu)化
  • 用身份證備案網(wǎng)站外貿(mào)營(yíng)銷渠道
  • 天津市建設(shè)工程評(píng)標(biāo)專家網(wǎng)站谷歌google官網(wǎng)下載
  • 為什么登錄不上建設(shè)銀行網(wǎng)站上海網(wǎng)站建設(shè)推廣服務(wù)
  • 蒼南龍港做網(wǎng)站店鋪亞馬遜免費(fèi)的關(guān)鍵詞工具
  • 網(wǎng)站建設(shè)與網(wǎng)頁制作技術(shù)拉新項(xiàng)目官方一手平臺(tái)
  • 龍灣做網(wǎng)站歌爾股份砍單
  • 合肥做公司網(wǎng)站公司太原網(wǎng)站推廣排名
  • 美國(guó)室內(nèi)設(shè)計(jì)聯(lián)盟優(yōu)化步驟
  • 捕魚游戲網(wǎng)站制作模板虞城seo代理地址
  • 不用下載就能玩的網(wǎng)頁游戲重慶百度快照優(yōu)化排名
  • 余姚做網(wǎng)站設(shè)計(jì)的免費(fèi)網(wǎng)站建設(shè)哪個(gè)好
  • 深圳正規(guī)網(wǎng)站建設(shè)服務(wù)人工智能培訓(xùn)機(jī)構(gòu)哪個(gè)好
  • 網(wǎng)站制作怎樣做百度app
  • 建網(wǎng)站如何賺錢西安seo外包服務(wù)
  • wordpress html編輯seo建站是什么
  • 海報(bào)設(shè)計(jì)思路上海網(wǎng)優(yōu)化seo公司
  • react網(wǎng)站開發(fā)介紹東莞seo項(xiàng)目?jī)?yōu)化方法
  • 北京網(wǎng)站建設(shè)哪里好經(jīng)典軟文廣告
  • 做星座網(wǎng)站網(wǎng)站測(cè)試的內(nèi)容有哪些
  • 通過網(wǎng)站做國(guó)際貿(mào)易的成本軟文廣告文案案例
  • 客戶推廣公司北京搜索引擎優(yōu)化管理專員