第一場tnt比賽,雖然三題都很水,但是只a了一題,太可惜。。賽後全都補上。
a題:問數字a,由連續n個a(1<=a<=9) 組成,乘上數字b(1<=b<=9)所得結果中特定的數字k,有幾個。比如 5 個 3 乘上 3,結果中9的個數為5個。
略水,有坑點,大部分的情況下,分為a * b 大於 10 或者不大於10的情況,但是仍然有特殊的情況,單獨考慮即可。
1#define rep(x,y,z) for(int x=y;x2
#define drep(x,y,z) for(int x=y;x>=z;x--)
3 #include 4 #include 5 #include 67
intmain()else
22 printf("
%d\n
",ans);
23continue;24
}25if(a * b == 49
)else
35 printf("
%d\n
",ans);
36continue;37
}38if(a * b == 56
)else
47 printf("
%d\n
",ans);
48continue;49
}50if(a * b == 28
)else
60 printf("
%d\n
",ans);
61continue;62
}63if(a * b == 64
)else
73 printf("
%d\n
",ans );
74continue;75
}76if(a * b < 10
)else
88 printf("
%d\n
",ans);89}
9091
9293
94return0;
95 }
b題:問最多長度為n(1<=n<=10^5)的一串數字中,有m(1<=m<=10^5)種不同的數字組成(1 - m) , 去掉其中的k (1<=k<=10^5) 個,使得最長的連續相同的數字的長度最長。
例如 1 2 1 1 2 1 1 2 1 去掉兩個 那麼去掉第5個和第8個最好。連續最長為1的串,長度為5.(當然去掉2,5也一樣)
資料好大啊,好像也沒有什麼想法,只能存下每一種數字出現的位置,然後列舉起點,尺取重點。可以二分也可以直接遍歷找。
1#define rep(x,y,z) for(int x=y;x2
#define drep(x,y,z) for(int x=y;x>=z;x--)
3#define clr(x,y) memset(x,y,sizeof(x));
4 #include 5 #include 6 #include
7 #include 8 #include
9#define maxn 100010
10using
namespace
std;
11 vectorcur_pos[maxn];
12int
k;13
void init(intin)
17/*
18int div(int aim , int be , int en)else29}
30}31*/
32int div(int aim , int be ,int
en)38
return
re;39}40
int slove(int
pos)
49return
ans;50}
51int
main()
63int ans = 0
;64 rep(i,1,m+1
)67 printf("
%d\n
",ans);68}
69return0;
70 }
c題:有n支隊伍,每一次操作給某只隊伍加上分數或者減去分數,並一次加減操作後問你分數最高的隊伍標號是多少,如果分數一樣,則輸出標號小的。
很裸的線段樹rmq,比賽的時候沒敲出來,賽後1a
1#define rep(x,y,z) for(int x=(y);x<(z);x++)
2#define drep(x,y,z) for(int x=(y);x>=(z);x--)
3#define clr(x,y) memset(x,y,sizeof(x));
4#define inf 0x3f3f3f3f
5#define linf 0x3f3f3f3f
6 #include 7 #include 8 #include
9 #include
10 #include 11
using
namespace
std;
1213
const
int maxn = 1
<< 17;14
int dat_n , dat[2 * maxn - 1
];15
intval_n , val[maxn];
16void update(int pos , int
v)else31}
32//
show_dat();33}
34void bulid_tree(int
n)43}44
int query(int a , int b , int k , int l , int
r)else57}
58int
main()71}
72return0;
73 }
比賽總結:
資料結構還是學的太差。
20181105題解報告
最後的模擬賽儘管打的很糟糕。某國個人所得稅法規定,普通公民的主要應納稅收入專案及納稅金額如下 工資 薪金所得。按月計算徵稅,以每月收入額減除費用800元後的餘額作為該月應納稅所得額,稅率如下表所示 級數月應納稅所得額 稅率 不超過500元的 超過500元 2000元的部分 超過2000元 5000元...
Cookies 題解報告
題目傳送門 題目大意 把 m 塊餅乾分給 n 個孩子,第i個孩子有乙個貪婪度 g i 如果有 a i 個孩子獲得的餅乾比第i個孩子多,那麼這個孩子就會產生 g i a i 的怨氣值。求一種方案,保證每個孩子至少有一塊餅乾,並且使所有孩子的怨氣值總和最小。思路解析 首先我們把孩子按照怨氣值從大到小排序...
Mobile Service 題解報告
題目傳送門 題目大意 有l個位置 編號為1 l 和n個要求,初始狀態三個服務員分別在1,2,3號位置,每個要求給出乙個位置p i 需要乙個服務員到這個位置去,已知從位置i到位置j的費用為c i j 求最小費用。思路分析 我們用f i x y z 表示完成了前i個要求,三個服務員分別在x,y,z位置的...